什么导致下列表达式产生错误的旋转点?

什么导致下列表达式产生错误的旋转点?

我想将点B逆时针旋转 30 度以A产生一个新点C。但是,我无法得到正确的结果,C如下图所示。红色圆圈帮助我们轻松注意到这个问题。

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl}
\psset{saveNodeCoors}
\begin{document}
\begin{pspicture}[showgrid](6,6)
    \pstGeonode
        (1,1){A}
        (5,3){B}
        (!N-B.y N-A.y sub 2 exp  N-B.x N-A.x sub 2 exp add sqrt N-B.y N-A.y sub N-B.x N-A.x sub atan 30 add PtoC){C}
    \pstCircleOA[linecolor=red]{A}{B}
\end{pspicture}
\end{document}

在此处输入图片描述

笔记

不要建议我使用,\pstRotation因为我已经知道它了,而且它不是我的兴趣所在。您可能会建议我使用([angle=30,nodesep=]{B}A),但问题是必须为它 分配一个绝对值。例如,在语法中nodesep添加一个新键可能是一个好主意,这样我们只需编写就可以解决这个问题。relnodesep([angle=30,...]{B}A)([angle=30,relnodesep=1]{B}A)

答案1

A您只需旋转节点和之间的差异向量B,但最后必须添加“原点”的坐标A

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl}
\psset{saveNodeCoors}
\begin{document}
\begin{pspicture}[showgrid](6,6)
    \pstGeonode
        (1,1){A}
        (5,3){B}
        (!N-B.y N-A.y sub 2 exp  N-B.x N-A.x sub 2 exp add sqrt 
          N-B.y N-A.y sub N-B.x N-A.x sub atan 30 add PtoC 
          N-A.y add exch N-A.x add exch % this was missing
        ){C}
    \pstCircleOA[linecolor=red]{A}{B}
\end{pspicture}
\end{document}

在此处输入图片描述

相关内容