传递给 \psplot 的分段定义函数的正确 RPN 表达式是什么?

传递给 \psplot 的分段定义函数的正确 RPN 表达式是什么?

我的目标是将 RPN 中的分段定义函数传递给\psplot。完整代码如下。该函数sin x用于x<0,用于cos x其他x

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

\begin{document}
\begin{pspicture}(-\psPi,-2)(\psPi,2)
    \psplot{Pi neg RadtoDeg}{Pi RadtoDeg}{x dup lt 0 {sin} {cos} ifelse}
\end{pspicture}
\end{document}

上述代码无法编译。那么正确的语法是什么?

编辑

当我尝试时(基于大卫卡莱尔的回答)

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\psset{plotpoints=3000}
\begin{document}
\begin{pspicture}(-\psPi,-2)(\psPi,2)
    \psplot{Pi neg RadtoDeg}{Pi RadtoDeg}{x dup 0 lt {sin} {cos} ifelse}
\end{pspicture}
\end{document}

我得到了如下的输出(很奇怪)。

在此处输入图片描述

答案1

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

\begin{document}
\begin{pspicture}(-\psPi,-2)(\psPi,2)
    \psplot[plotpoints=1000]{Pi neg}{Pi}{x RadtoDeg dup 0 lt { sin } {cos} ifelse}
\end{pspicture}
\end{document}

或以代数模式:

\begin{pspicture}(-\psPi,-2)(\psPi,2)
    \psplot[plotpoints=1000,algebraic]{Pi neg}{Pi}{IfTE(x<0,sin(x),cos(x))}
\end{pspicture}

IfTE(<expression>,<true>,<false>)

在此处输入图片描述

答案2

它是RPN:-)

    \psplot{Pi neg RadtoDeg}{Pi RadtoDeg}{x dup 0 lt {sin} {cos} ifelse}

0 lt不是lt 0

相关内容