是否有可用的解释器可以将中缀转换为 RPN?

是否有可用的解释器可以将中缀转换为 RPN?

我开始更多地使用 PSTricks,并且一直在查看包\psVolume中定义的命令pst-func。我的问题在于逆波兰表示法。是否有可用的解释器可以将中缀转换为 RPN?

答案1

按照无法接受选项\psVolume的定义,您需要使用如下包:pst-funcalgebraicinfix-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}

相关内容