用多项式和三角函数画线的奇怪行为

用多项式和三角函数画线的奇怪行为

我正在尝试制作泰勒图来比较统计数据集。以下是作为此类图表的初步方法的代码。

\begin{pspicture}(-1,-1)(5.75,5.75)
   \psaxes(0,0)(4,4)
   \begin{psclip}{\pswedge(0,0){4}{0}{90}}
     \multido{\ra=1+1}{4}{%
       \pscircle[linewidth=1pt](2.6;0){\ra}%
       \psplot[algebraic]{0}{\ra}{sqrt(\ra*\ra - x*x)}}
     \multido{\rx=0.0+0.1}{10}{%
       \pstVerb{/pen \rx\space 1 div ACOS def}
       \psplot[linecolor=green]{0}{4}{x pen TAN mul}}
  \end{psclip}
  \multido{\ry=0.0+0.1}{10}{%
     \rput{! \ry\space 1 div ACOS RadtoDeg}(! \ry\space 4 mul 16 \ry\space 4 mul  
          dup mul sub sqrt){\psPrintValue{\ry\space 1 div ACOS RadtoDeg}}}
\end{pspicture}

问题在于绘制绿线的第二个循环,给出:

在此处输入图片描述

请注意两条接近 45 度的绿线(应该只有一条)。斜率来自与 x 轴 1/10 等分相对应的角度。代码当然可以更轻松或更紧凑地编写,但我很想知道为什么此代码会产生这种异常或可能出现什么问题。

答案1

使用一个简单的\psline方法:

\documentclass[pstricks]{standalone}
\usepackage{pst-plot,pst-math}
\usepackage{auto-pst-pdf}

\begin{document}

\begin{pspicture}(-1,-1)(5.75,5.75)
\psaxes(4,4)
\begin{psclip}{\pswedge(0,0){4}{0}{90}}
    \multido{\ia=1+1}{4}{%
        \pscircle[linewidth=1pt](2.6;0){\ia}%
        \psplot[algebraic]{0}{\ia}{sqrt(\ia*\ia - x*x)}}
    \multido{\rx=0.0+0.1}{10}{%
        \psline[linecolor=green](!4 \rx\space ACOS RadtoDeg PtoC)
    }
    \end{psclip}
    \multido{\ry=0.0+0.1}{10}{%
        \rput{! \ry\space ACOS RadtoDeg}(! \ry\space 4 mul 16 \ry\space 4 mul  
        dup mul sub sqrt){\psPrintValue{\ry\space ACOS RadtoDeg}}}
\end{pspicture}

\end{document}

在此处输入图片描述

另一种解决方案:

\begin{pspicture}(-1,-1)(5.75,5.75)
\psaxes(4,4)
\begin{psclip}{\pswedge(0,0){4}{0}{90}}
  \multido{\ia=1+1}{4}{%
      \pscircle[linewidth=1pt](2.6;0){\ia}%
      \psarc(0,0){\ia}{0}{90}
  }
    \multido{\rx=0.0+0.1}{10}{%
        \psline[linecolor=green](!4 \rx\space ACOS RadtoDeg PtoC)
    }
\end{psclip}
\multido{\ry=0.0+0.1}{10}{%
    \rput{! \ry\space ACOS RadtoDeg}(!4.1 \ry\space ACOS RadtoDeg 1 sub PtoC){%
        \psPrintValue{\ry\space ACOS RadtoDeg}}}
\end{pspicture}

相关内容