有人可以解释一下 PGF 中的 + 与 ++ 运算符吗?

有人可以解释一下 PGF 中的 + 与 ++ 运算符吗?

PGF 2.0 手册说,

您可以在一个或两个坐标前面添加一个 + 号,例如 +(1cm,0cm) 或 ++(0cm,2cm)。这些坐标的解释不同:第一种形式表示“从上一个指定位置向上 1cm”,第二种形式表示“从上一个指定位置向右 2cm,使其成为新的指定位置。”

他们给出了如下示例:

\begin{tikzpicture}[scale=3]
\clip (-0.1,-0.2) rectangle (1.1,0.75);
\draw[step=.5cm,gray,very thin] (-1.4,-1.4) grid (1.4,1.4);
\draw (-1.5,0) -- (1.5,0);
\draw (0,-1.5) -- (0,1.5);
\draw (0,0) circle (1cm);
\filldraw[fill=green!20,draw=green!50!black]
(0,0) -- (3mm,0mm) arc (0:30:3mm) -- cycle;
\draw[red,very thick] (30:1cm) -- +(0,-0.5);
\end{tikzpicture}

现在,如果我将 +(0,-0.5) 更改为 ++(0,-0.5),一切仍然相同!后者不应该是之前指定的坐标 (即 (30:1cm)) 的 0.5 吗?

答案1

如果你相对于上一点提出新的观点,差异就会很明显。例如:

\begin{tikzpicture}
\draw (0,0) -- +(1,1) -- +(2,0);
\fill [red] (0,0) circle (3pt);
\end{tikzpicture}
\begin{tikzpicture}
\draw (0,0) -- ++(1,1) -- +(2,0);
\fill [red] (0,0) circle (3pt);
\end{tikzpicture}

在第一张图片中,最后一个坐标位于第一个坐标右侧 2 厘米处,而在第二张图片中,最后一个坐标位于第一个坐标右侧 2 厘米处第二坐标,因为,这是“新指定的位置”。

答案2

也许一个较短的例子就足够了:

  \draw (0,0) -- +(2,0) -- ++(0,1) -- +(2,0);
  % the first line (-- +(2,0) ) draws a line to 2cm to the right, *relative* to
  % the point of origin (0,0) *without* updating where we are then situated in
  % the current path.
  % the second line (-- ++(0,1) ) on the other hand, *does* update the location
  % where we are situated on the current path.

结果类似于镜像字母“Z”

相关内容