如何在 pstricks 中根据函数定义坐标

如何在 pstricks 中根据函数定义坐标

我想根据函数定义坐标。

\documentclass[pstricks,border=12pt]{exam}

\usepackage{pst-all}                

\begin{document}

\psset{xunit=2cm,yunit=1cm}
\begin{pspicture}(-0.2,-0.2)(6,6)
    \def\f{-0.8*x^2+4*x }
    \def\xA{1}
    \def\yA{\f(1)}
    \cnode*(\xA,\yA){A}
    \def\xB{3}
    \def\yB{\f(3)}
    \cnode*(\xB,\yB){B}
    \psaxes[Dx=1,Dy=122,showorigin=false]{->}(0,0)(5.5,6)[$\displaystyle t$,0][$\displaystyle s(t)$,90]
    \psplot[algebraic,linewidth=1pt]{0}{5}{\f}
    \psline[linewidth=1pt](A)(B)
\end{pspicture}

\end{document}

答案1

使用!PS 代码的“ ”符号作为节点坐标。PSTricksAlgParser将函数从中缀符号转换为 PostScript 代码。

\documentclass[pstricks]{standalone}

\usepackage{pst-all}

\begin{document}

\psset{xunit=2cm,yunit=1cm}
\begin{pspicture}(-0.4,-1)(6,7)
    \def\f(#1){(-0.8*(#1)^2+4*(#1)) AlgParser cvx exec}
    \def\xA{1}
    \def\yA{\f(\xA)}
    \pnode(!\xA\space \yA){A}
    \def\xB{3}
    \def\yB{\f(\xB)}
    \pnode(!\xB\space \yB){B}
    \psaxes[Dx=1,Dy=122,showorigin=false]{->}(0,0)(5.5,6)[$\displaystyle t$,0][$\displaystyle s(t)$,90]
    \psplot[linewidth=1pt]{0}{5}{\f(x)}
    \psline[linewidth=1pt](A)(B)
\end{pspicture}

\end{document}

相关内容