考虑下面的代码。
\documentclass[pstricks,border=12pt]{standalone}
\SpecialCoor
\begin{document}
\begin{pspicture}[showgrid](-5,-5)(5,5)
\pscustom
{
\psline(1,0)
\rlineto(0,1)
%\translate(!!CP.x 0) % does not work!
}
\end{pspicture}
\end{document}
我想分别获取当前点的横坐标和纵坐标,如何做?
答案1
CP 实际上是两个元素的后记宏x y
。您可以使用pop
和exch pop
分别访问它们。但是,这些值与 pstricks 坐标不在同一个坐标系中(例如(1,2)
),因此需要进行一些转换。如下所示
\documentclass[pstricks,border=12pt]{standalone}
\SpecialCoor
\begin{document}
\makeatletter
\begin{pspicture}[showgrid](-5,-5)(5,5)
\pscustom
{
\psline(1,0)
\rlineto(1,1)
\rlineto(!!CP pop -2 \pst@number\psyunit mul) %CP.x = 2 --> \rlineto(2,-2)
\rlineto(!!CP exch pop -1 \pst@number\psyunit mul) %CP.y = -1 --> \rlineto(-1,-1)
}
\end{pspicture}
\end{document}
结果是: