如何使用 multido 在 pspicture 中绘图

如何使用 multido 在 pspicture 中绘图

我想使用 multido 在 pspicture 中绘制割线。

\documentclass{exam}

\usepackage{multido}
\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}
\psplot[linewidth=1pt]{0}{5}{\f(x)}
    \psplotTangent[arrows=<->,arrowscale=0.5]{1}{1}{\f(x)}
    \multido{\i=2+1}{4}{\psline[linewidth=0.5pt, linestyle=dashed](1,\f(1))(\i,\f(\i))}     
\end{pspicture}

\end{document}

答案1

\documentclass{exam}
\usepackage{multido}
\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}
\psplot[linewidth=1pt]{0}{5}{\f(x)}
\psplotTangent[arrows=<->,arrowscale=0.5]{1}{1}{\f(x)}
\multido{\iA=2+1}{4}{%
   \psline[linewidth=0.5pt, linestyle=dashed](A)(!{\iA\space \f(\iA)})%
}       
\end{pspicture}

答案2

我解决了。谢谢。

\documentclass{exam}

\usepackage{multido}
\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}
    \psplot[linewidth=1pt]{0}{5}{\f(x)}
    \psplotTangent[arrows=<->,arrowscale=0.5]{1}{1}{\f(x)}
    \multido{\i=2+1}{4}{
        \def\xB{\i}
        \def\yB{\f(\i)}
        \pnode(!\xB\space \yB){B}
        \psline[linewidth=0.5pt, linestyle=dashed](A)(B)
    }       
\end{pspicture}

\end{document}  

相关内容