Нарисуйте стрелку между двумя точками в списке в TikZ

Нарисуйте стрелку между двумя точками в списке в TikZ

Я пытаюсь соединить набор точек со стрелками, используя 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}

Связанный контент