我的目标是将 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