两种不同语法的不同输出应该产生相同的输出

两种不同语法的不同输出应该产生相同的输出

A使用 2 个语法将构造一个节点。

  • \pnode(!2 3 0 p2c exch 3 add exch 2 add){A}
  • \pnode[3,2](!2 3 0 p2c){A}

每个节点A通过平移一个点(!2 3 0 p2c)(位于基本的向右移动 3 个单位,再向上移动 2 个单位。

第一个语法

\pnode(!2 3 0 p2c exch 3 add exch 2 add){A}

输出如下。

在此处输入图片描述

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pstricks-add}
\pstVerb{/p2c {dup 3 1 roll cos mul 3 1 roll sin mul} bind def}% b a t p2c --> x y
\begin{document}

\begin{pspicture}[showgrid=bottom](6,4)
    \pnode(3,2){center}
    \pnode(!2 3 0 p2c exch 3 add exch 2 add){A}
    \pnode(!2 3 0 p2c exch 3 add exch 2 add){B}
    \pscustom[origin={center},fillstyle=solid,fillcolor=cyan]
    {
        \psellipticarc(center)(3,2){(A)}{(B)}
        \lineto(center)
        \closepath
    }   
\end{pspicture}

\end{document}

第二种语法

\pnode[3,2](!2 3 0 p2c){A}

输出如下。

在此处输入图片描述

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pstricks-add}
\pstVerb{/p2c {dup 3 1 roll cos mul 3 1 roll sin mul} bind def}% b a t p2c --> x y
\begin{document}

\begin{pspicture}[showgrid=bottom](6,4)
    \pnode(3,2){center}
    \pnode[3,2](!2 3 0 p2c){A}
    \pnode(!2 3 0 p2c exch 3 add exch 2 add){B}
    \pscustom[origin={center},fillstyle=solid,fillcolor=cyan]
    {
        \psellipticarc(center)(3,2){(A)}{(B)}
        \lineto(center)
        \closepath
    }   
\end{pspicture}

\end{document}

为什么输出不同?

编辑:

A我注意到,只有当和B都用相同的语法表达时,问题才会得到解决,要么

    \pnode(!2 3 0 p2c exch 3 add exch 2 add){A}
    \pnode(!2 3 0 p2c exch 3 add exch 2 add){B}

或者

    \pnode[3,2](!2 3 0 p2c){A}
    \pnode[3,2](!2 3 0 p2c){B}

但我仍然不明白为什么上面给出的例子(编辑部分之前)的输出不同?

答案1

对于第一个例子,我得到了 A/B 的 x/y 值:

2.00000048
6.00000048
2.0
5.99999952

第二个

2.0
5.99999952
2.0
5.99999952

相关内容