在 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 pt viaminimum 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}

相关内容