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.
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 \foreach
loop
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 via
minimum 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
\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}