Desenhe uma seta entre dois pontos em uma lista no TikZ

Desenhe uma seta entre dois pontos em uma lista no TikZ

Estou tentando conectar um conjunto de pontos com setas usando tkiz. Estou tentando demonstrar o movimento de algo em função do tempo com a seta indicando o movimento. Posso obter os pontos onde desejo apenas tendo uma lista das coordenadas x e usando \foreach para desenhá-los. Tentei pesquisar e não vejo nada que faça referência ao que quero fazer. Meu código para desenhar as setas é

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

mas isso apenas desenha uma seta de comprimento 1 na coordenada, em vez de ir para a próxima coordenada. Minha saída do código completo

Agradecemos antecipadamente por qualquer ajuda.

Responder1

Aqui estão duas abordagens diferentes para você.

Movimento 1

Por que você não mostra apenas os pontos? Já visualiza movimento. Para fazer isso, basta colocar nós com texto vazio \node[dot] at (\x,.5) {};dentro do \foreachloop

Movimento 2

Comece com o movimento 1 e desenhe apenas pequenas linhas com uma seta, deixando de fora o primeiro ponto da sua lista. Observação:

  • raio do ponto definido como 4 pt viaminimum size=4pt,inner sep=0
  • introduzindo uma pequena mudança para ver melhor as setas\draw[<-,colr,xshift=-2pt] (\x,-.5) -- +(-2pt,0);
  • equilibre ambos os parâmetros, aqui 4pt e 2pt, também escreva a localização dos seus pontos

resultado

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

informação relacionada