PSTricks 中的相对坐标

PSTricks 中的相对坐标

Z 使我们可以轻松使用相对坐标,如下例所示。

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
    \coordinate (A) at (-1,0);
    \draw[blue,->] (A) -- +(30:1);
    \draw[red] ($(A)+(30:1)$) +(30+90:1) -- +(30-90:1) -- +(30:0.5) -- +(30+90:1) coordinate (end);
    \draw[green] (A) -- (end) ++(30-90:2) -- (A);
\end{tikzpicture}
\end{document}

前任

这非常优雅,因为我不必手动计算坐标,特别是在使用任意放置的节点时。

由于 PSTricks 利用了 Postscript 的计算能力,我希望有一种方法可以使用相对坐标。语法可能不像 Ti 中那么简单Z,但使用 PSTricks 进行 3D 和绘图要容易得多。

问题:PSTricks 是否具有相对坐标功能?(如果有,我该如何使用它们?)

答案1

\psrline在第 41 页的文档中进行了说明pst-node,但其代码是在 中实现的pstricks-add。像往常一样,这可能有历史原因。

根据您的第一个案例(编辑之前):

\psrline(A)(B)(C)...相当于\draw (A) -- ++(B) -- ++(C)...

\documentclass[pstricks,border=4mm]{standalone}
\usepackage{pstricks-add}
\begin{document}
\begin{pspicture}[showgrid](-2,-1)(1,1)
    \pnode(-1,0){A}
    \psrline(A)(1;30)
\end{pspicture}
\end{document}

在此处输入图片描述

根据您的第二种情况(编辑后):

据我所知,没有与 等效的 PSTricks \draw (A) -- +(B) -- +(C)...。以下代码产生与您的相同的输出。

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pstricks-add}

\begin{document}
\begin{pspicture}[showgrid=true](-2,-1)(1,2)
    \pnode(-1,0){A}
    \pnode([nodesep=1,angle=30]A){B}
    \pnode([nodesep=1,angle={!30 90 add}]B){end}
    \psrline[linecolor=blue]{->}(A)(1;30)
    \psline[linecolor=red](B)(end)([nodesep=1,angle={!30 90 sub}]B)([nodesep=0.5,angle=30]B)(end)
    \psline[linecolor=green](A)(end)
    \psline[linecolor=green]([nodesep=2,angle={!30 90 sub}]end)(A)
\end{pspicture}
\end{document}

在此处输入图片描述

答案2

\documentclass[border=3mm,pstricks]{standalone}
\usepackage{pstricks-add}
\begin{document}

 \begin{pspicture}[showgrid](9,10)
 \psStartPoint(1,0)
 \psVector(1;30) 
 \psStartPoint(1,1)
 \psVector[arrows=-](3;30)
 \psVector[arrows=-](4;60)
 \psVector[linecolor=red,arrows=-](3;10)
 \psVector[linestyle=dashed,arrows=-](4;110)
 \end{pspicture}

\end{document}

在此处输入图片描述

单个线段的另一种可能性是\rput(-1,0){\psline(1;30)}

相关内容