箭头锚点的精确放置

箭头锚点的精确放置

我有一个 (TikZ) 图表,其中有多个文本“块”,用箭头连接。由于某些原因,这些块(的中心)没有精确地水平对齐,但我仍然希望我的垂直箭头完全垂直。示例:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \node[rectangle, draw] (a) at (0,0) {Some rather long text};
  \node[rectangle, draw] (b) at (.5,-2) {Even more text};
  \path[->] (a) edge (b);
  \path[red, ->] (a.315) edge (b.130);
\end{tikzpicture}
\end{document}

平均能量损失

我更喜欢红色箭头,而不是黑色箭头,这是我通过摆弄愚蠢的数字创建的。因此:

有没有办法自动创建一个 (1) 完全垂直且 (2) 大致在中心与原始箭头相交的箭头(而不是中心之间的黑色箭头)?

答案1

或者,如果你想让箭头位于中心,

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \node[rectangle, draw] (a) at (0,0) {Some rather long text};
  \node[rectangle, draw] (b) at (.5,-2) {Even more text};
  \path (a) -- (b) coordinate[midway] (aux);
  \draw[->] (a.south -| aux) -- (b.north -| aux);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以根据节点指定水平和垂直位置。

垂直箭头

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \node[rectangle, draw] (a) at (0,0) {Some rather long text};
  \node[rectangle, draw] (b) at (.5,-2) {Even more text};
  \draw[->] (b|-a.south) -- (b);
\end{tikzpicture}
\end{document}

相关内容