在 TikZ 中指定箭头的长度

在 TikZ 中指定箭头的长度

这应该很简单。我不想指定箭头的起点和终点,而是想指定箭头的长度。这听起来可能是一样的,但是当几个箭头之间有长度未知的节点时,情况就不一样了,因为当箭头前面有一个节点时,我就不再确定箭头的确切起点了。

这个例子应该更清楚。我想要的是每个箭头的固定长度,节点应该简单地放在箭头的开始和结束位置。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \node[left] at (0,0) (Step 1) {Step 1};
    \draw [very thick, ->] (Step 1) -- (2,0);
    \node[right] at (2,0) (Step 2) {Step 2};
    \draw [very thick, ->] (Step 2) -- (4,0);
    \node[right] at (4,0) (Step 3) {Step 3};
\end{tikzpicture}
\end{document}

在此处输入图片描述

PS. 我知道有一个问题和这个问题一样(如何在 TikZ 中指定箭头长度?),但它比我在这里试图完成的事情要复杂得多。

答案1

如果要指定长度,可以使用++。因此,如果要绘制较长的箭头,3cm请使用++(3.0cm,0)红色箭头所示的长度。

如果你只想绘制固定长度的箭头并按照箭头放置节点,那么tikz可以使用node(不是 \node) 作为 的一部分\draw(而不是单独的\node)。请注意从节点的一端开始绘制(下面我使用了east)。否则将使用 的中心node

在此处输入图片描述

笔记:

代码:

\documentclass{article}
\usepackage{tikz}
\usepackage{siunitx}

\newcommand{\FixedLengthArrow}{2,0}
\begin{document}
The black arrows are \SI{2}{\centi\meter} long:\bigskip

\begin{tikzpicture}
    \node[left] at (0,0) (Step 1) {Step 1};
    \draw [very thick, ->] (Step 1.east) -- ++(\FixedLengthArrow)
        node[right] (Step 2) {NeXT Step 2};
    \draw [very thick, ->] (Step 2.east) -- ++(\FixedLengthArrow)
        node[right]  (Step 3) {Step 3};
        
    %% To draw a line which is 3cm long
    \draw [ultra thick, red, ->] (0,-1) -- ++(3.0cm,0) node [above, pos=0.5] {This is \SI{3}{\centi\meter}};
\end{tikzpicture}
\end{document}

相关内容