\psline[origin={1,2}](3;45) 在 TikZ 中的对应内容是什么?

\psline[origin={1,2}](3;45) 在 TikZ 中的对应内容是什么?

\psline[origin={1,2}](3;45)从点开始,3以 的角度画一条长度为 的线。45 degrees(1,2)

TikZ 的对应内容是什么\psline[origin={1,2}](3;45)

答案1

您可以使用语法指定极坐标(angle:radius),因此一条 45 度角且长度为 3 的线是(45:3)。但作为裸坐标,它以原点为中心。所以我们需要使用 或 来移动它+++取决于我们是否要移动计算点下一个点)。因此:

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\tikz \draw (0,0) (1,2) --  +(45:3) -- +(90:2);
\tikz \draw (0,0) (1,2) -- ++(45:3) -- +(90:2);
\end{document}

在这两种情况下,(45:3)都是相对于 点的(1,2)(如要求的那样),但在第一个中(90:2), 也是相对于 点的(1,2),而在第二个中, 是相对于 指定的点的(45:3)

结果(有点像,见下文):

tikz 角度

(我希望这些圆圈不会分散注意力。它们的作用是强调指定点的位置。)


添加于编辑) 极坐标的详细信息请参见第 13.2.1 节 (画布、XYZ 和极坐标系) 的 pgfmanual(在我的版本,即 PGF2.10 中,极坐标位于第 125 页)。在查阅此参考资料时,我注意到极坐标的一个微妙之处。有两个版本:canvas polarxyz polar。在后者中,允许预定义一个X矢量和一个向量将被视为新的Xcanvas polar向量,用于任何后续的非画布坐标计算。总是相对于画布,而xyz polar相对于当前使用的坐标系。微妙之处在于隐式指定极坐标的形式,其中包含一种选择是还是 的(angle:radius)方式。如果包含明确的单位,则为,否则为。canvas polarxyz polarradiuscanvas polarxyz polar

大多数情况下,这没什么大不了的。特别是,如果你不弄乱X向量,两者等价。

在第二次编辑中添加)根据要求,网格线,加上(自动!)坐标。实际的生成图表的代码是:

\documentclass{standalone}
\usepackage{tikz}
\makeatletter
\tikzset{c/.style={insert path={node[fill,circle] {} node[above left] {(\pgfmathparse{\pgf@x * 0.03514598035}\pgfmathprintnumber{\pgfmathresult},\pgfmathparse{\pgf@y * 0.03514598035}\pgfmathprintnumber{\pgfmathresult})}}}}
\tikzset{ce/.style={c,insert path=(current bounding box.south west) grid (current bounding box.north east)}}
\makeatother
\begin{document}
\tikz \draw[ce] (0,0)[c] (1,2)[c] --  +(45:3)[c] -- +(90:2)[ce];
\tikz \draw (0,0)[c] (1,2)[c] -- ++(45:3)[c] -- +(90:2)[ce];
\end{document}

(该因子0.03514598035(显然)是从 TeX 点到厘米的转换)

答案2

这将是:

\draw (1,2) -- +(45:3);

它从 (1,2) 开始。--表示应绘制一条线(不只是进行“移动”)。 表示+下一个坐标相对于当前坐标,(45:3)代表角度和长度。

相关内容