PGF/TikZ:相对坐标表现异常

PGF/TikZ:相对坐标表现异常

在下面的代码中,给出的第二个坐标-- +似乎也更新了路径以供进一步计算。我预期的形状应该看起来像一个大圆周率。

PGF 手册中关于相对坐标的描述(第 133 页):

除了 ++,您还可以使用单个 +。这也指定了相对坐标,但它不会“更新”当前点以供后续使用相对坐标。因此,您可以使用此符号指定多个点,所有点都相对于同一个“初始”点 [...]

第一个点(左侧)的工作方式与我预期的一样,但第二个点却不是这样。我疏忽了什么?

我的输出如下: 在此处输入图片描述

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}

\draw (0,0) -- ++(0,3) -- +(-2.5,0) -- ++(3,0)  -- +(2.5,0) -- ++(0,-3);
\useasboundingbox(-3,-.5) rectangle (6,4);
\end{tikzpicture}
\end{document} 

答案1

我认为,如果以视觉形式绘制出来,就会很有意义:

TiKZ 运动

  • 红色标记的运动是相对于红色圆圈标记的点的。
  • 同样,蓝色标记的动作是相对于蓝色圆圈标记的点而言的。
  • 最后,绿色标记的动作是相对于绿色圆圈标记的点的。

代码:

\documentclass[border=5pt,tikz]{standalone}
\begin{document}
  \begin{tikzpicture}
    \draw (0,0) -- ++(0,3) -- +(-2.5,0) -- ++(3,0)  -- +(2.5,0) -- ++(0,-3);
    \begin{scope}[yshift=-40mm,red]
      \draw [fill] (0,0) circle (1.5pt) node [right] {(0,0)} -- ++(0,3) node [below right] {3 up};
    \end{scope}
    \begin{scope}[yshift=-40mm,blue]
      \draw [fill] (0,3) circle (1.5pt)  node [above] {(0,3)} -- +(-2.5,0) circle (1.5pt) node [below right, font=\small] {2.5 to the left} -- ++(3,0) node [below, font=\small] {3 to the right};
    \end{scope}
    \begin{scope}[yshift=-40mm,green]
      \draw [fill] (3,3) circle (1.5pt)  node [above] {(3,3)} -- +(2.5,0) circle (1.5pt) node [above left, font=\small, xshift=5mm] {2.5 to the right} -- ++(0,-3) circle (1.5pt) node [left, font=\small] {3 down};
    \end{scope}
  \end{tikzpicture}
\end{document}

答案2

你必须像这样使用它:

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}

\draw (0,0) -- ++(0,3) -- +(-2.5,0) -- ++(5.5,0)  -- ++(-2.5,0) -- +(0,-3);
\useasboundingbox(-3,-.5) rectangle (6,4);
\end{tikzpicture}
\end{document}

如何?

  1. (0,0)从到画一条线(0,3),将原点改为++。新的起点是(0,3)
  2. (0,3)画到-2.5
  3. (-2.5,0)从(以初始点为(0,3))5.5 向右绘制,并将初始点更新为此点。
  4. 现在向左返回 2.5(相对于(5.5,0))。
  5. 从这里向下绘制 3 个单位。

单打+从指定点移动给定的距离。例如

\draw (1,1) - +(2,1);

(1,1)从右向左画 2 个单位的线关于原产地和 1 个单位关于原产地。 另一方面

\draw ++(1,1) - +(2,1);

(1,1)从右向左画 2 个单位的线关于(1,1)和 1 个单位关于(1,1)

相关内容