Я пытаюсь соединить набор точек со стрелками, используя tkiz. Я пытаюсь продемонстрировать движение чего-либо как функцию времени со стрелкой, указывающей движение. Я могу получить точки там, где мне нужно, просто имея список координат x и используя \foreach для их рисования. Я пробовал искать, но не вижу ничего, что ссылалось бы на то, что я хочу сделать. Мой код для рисования стрелок:
\foreach \x in {0,1.2,2.4,3.6,4,4.4,4.8,6.8,8.8}
\draw[->] (\x,0.5) -- (\x+1,0.5);
но это просто рисует стрелку длиной 1 в точке с координатой, а не переходит к следующей точке.
Заранее благодарю за любую помощь.
решение1
Вот два разных подхода для вас.
Движение 1
Почему бы вам не показать только точки? Это уже визуализирует движение. Для этого просто поместите узлы с пустым текстом \node[dot] at (\x,.5) {};
внутри \foreach
цикла
Движение 2
Начните с движения 1, а затем нарисуйте только маленькие линии со стрелкой, опустив первую точку вашего списка. Примечание:
- радиус точки установлен на 4 пт через
minimum size=4pt,inner sep=0
- ввожу небольшой сдвиг, чтобы лучше видеть стрелки
\draw[<-,colr,xshift=-2pt] (\x,-.5) -- +(-2pt,0);
- сбалансируйте оба параметра, здесь 4pt и 2pt, также относительно расположения ваших точек
\documentclass[10pt,border=3mm,tikz]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
dot/.style={fill=black,circle,minimum size=4pt,inner sep=0},
>={Stealth},
colr/.style={red!50},
]
% ~~~ help grid ~~~~~~~~~~~~~~~~~~~~~~~~~~
\draw[teal!50] (0,-1) grid (9,2);
% ~~~ motion 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\draw[gray] (0,.5) -- (8.8,.5);
\foreach \x in {0,1.2,2.4,3.6,4,4.4,4.8,6.8,8.8}
\node[dot] at (\x,.5) {};
% ~~~ motion 2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\draw[colr] (0,-.5) -- (8.8,-.5);
\foreach \x in {0,1.2,2.4,3.6,4,4.4,4.8,6.8,8.8}
\node[dot] at (\x,-.5) {};
\foreach \x in { 1.2,2.4,3.6,4,4.4,4.8,6.8,8.8}
\draw[<-,colr,xshift=-2pt] (\x,-.5) -- +(-2pt,0);
\end{tikzpicture}
\end{document}