Zeichnen Sie einen Pfeil zwischen zwei Punkten in einer Liste in TikZ

Zeichnen Sie einen Pfeil zwischen zwei Punkten in einer Liste in TikZ

Ich versuche, mithilfe von tkiz eine Reihe von Punkten mit Pfeilen zu verbinden. Ich versuche, die Bewegung von etwas als Funktion der Zeit zu demonstrieren, wobei der Pfeil die Bewegung anzeigt. Ich kann die Punkte dorthin bringen, wo ich sie haben möchte, indem ich einfach eine Liste der x-Koordinaten habe und sie mit \foreach zeichne. Ich habe versucht zu suchen und finde nichts, das auf das verweist, was ich tun möchte. Mein Code zum Zeichnen der Pfeile lautet

\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);

Dies zeichnet jedoch nur einen Pfeil der Länge 1 an der Koordinate, anstatt zur nächsten Koordinate zu gehen. Meine Ausgabe des vollständigen Codes

Vielen Dank im Voraus für jede Hilfe.

Antwort1

Hier sind zwei verschiedene Ansätze für Sie.

Antrag 1

Warum zeigst du nicht einfach nur die Punkte? Das visualisiert bereits Bewegung. Platziere dazu einfach Knoten mit leerem Text \node[dot] at (\x,.5) {};innerhalb der \foreachSchleife

Bewegung 2

Beginnen Sie mit Bewegung 1 und zeichnen Sie dann nur kleine Linien mit einem Pfeil, wobei Sie den ersten Punkt Ihrer Liste auslassen. Hinweis:

  • Punktradius auf 4 pt eingestellt viaminimum size=4pt,inner sep=0
  • eine kleine Verschiebung einführen, um die Pfeile besser sehen zu können\draw[<-,colr,xshift=-2pt] (\x,-.5) -- +(-2pt,0);
  • balancieren Sie beide Parameter, hier 4pt und 2pt, auch in Bezug auf die Position Ihrer Punkte

Ergebnis

\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}

verwandte Informationen