我开始更多地使用 PSTricks,并且一直在查看包\psVolume
中定义的命令pst-func
。我的问题在于逆波兰表示法。是否有可用的解释器可以将中缀转换为 RPN?
答案1
按照无法接受选项\psVolume
的定义,您需要使用如下包:pst-func
algebraic
infix-RPN
更简单的例子
\documentclass{article}
\usepackage{infix-RPN,pst-func}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{pspicture}
\PreviewBorder=10pt\relax
\begin{document}
\begin{pspicture}(-0.5,-2)(5,2.5)
\psaxes{->}(0,0)(0,-2)(3,2.5)
\infixtoRPN{x^0.5}%
\psVolume[fillstyle=solid,fillcolor=magenta!30](0,4){10}{\RPN}
\psline{->}(4,0)(5,0)
\end{pspicture}
\end{document}
使用非常简单:调用\infixtoRPN
然后使用输出\RPN
。
警告:如果以 RPN 符号表示三角函数,则以度数(而非弧度)表示。例如:
\psplot{0}{3.1415}{x sin}
表示您想要绘制从 0 度到 3.1415 度的正弦图。\psplot{0}{3.1415}{180 3.1415 div x mul sin}
表示绘制从 0 度到关于180 度。
三角函数的简单示例
\documentclass{article}
\usepackage{infix-RPN,pst-func}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{pspicture}
\PreviewBorder=10pt\relax
\begin{document}
\begin{pspicture}(-0.5,-3)(7,3)
\def\f(#1){sin(180/\psPi*#1)+1.2}%
\infixtoRPN{\f(x)}%
\psVolume[fillstyle=solid,fillcolor=magenta!30](0,\psPiTwo){15}{\RPN}
\psaxes[labelFontSize=\scriptscriptstyle]
{->}(0,0)(0,-2.75)(6.75,2.75)[$x$,0][$y$,90]
\rput[bl](*{\psPi\space 2 div} {\f(x)+0.2}){$y=sin(x)+1.2$}
\end{pspicture}
\end{document}