如何在不添加元素的情况下更新 TikZ 中的当前相对坐标?

如何在不添加元素的情况下更新 TikZ 中的当前相对坐标?

是否可以在不向图片添加任何内容的情况下更新 TikZ 中的当前相对坐标?例如,

\node at ++(1, 0) (node1) {...};

将通过将当前x坐标增加 1 来更新它,但是如何在不实际添加节点的情况下做到这一点?此外,是否可以在循环中增加位置(即在迭代之间保留新值)?

答案1

正如其他人在评论中提到的,您可以使用\path来更新当前的相对位置。 ++(…)是相对于特定路径中最后保存的位置,但路径的开头是相对于(0,0)。 请考虑以下示例:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node at (0,0) {O};% label the origin
\node at ++(1, 0) [orange] {A};% this is relative to (0,0)
\node at ++(2, 0) [green] {B};% still relative to (0,0)
\path ++(2, 0) ++ (1,0) node [blue] {C};% start relative to (0,0), go to (2,0) and then relative to this end up at (3,0)
\path ++(5,0) ++ (1,0) node [red] {D};
\end{tikzpicture}
\end{document}

在此处输入图片描述

\node at ++(1, 0)以和开头的行\node at ++(2, 0)均相对于(0,0)。后续以 开头的行\path ++(2, 0) ...相对于 开始路径(0,0),并移动到(2,0),后续++ (1,0)相对于最后一点,因此 位于C。请注意,在此路径中(3,0)未放置任何内容。(2,0)

只是为了确保万无一失,最后\path将当前坐标设置为(5,0),并且不会向那里的图片添加任何内容,只有在(6,0)处我们才能看到D

相关内容