如何使一个点属于一个具有动画的功能?

如何使一个点属于一个具有动画的功能?
\documentclass[pstricks,border=10pt]{standalone}
\usepackage{pstricks-add,pst-plot,pst-calculate,amssymb,amsmath}

\begin{document}
\begin{pspicture}[algebraic](-4.5,-6)(1,2.5)
\def\a{\pscalculate{8/3}}
\def\b{\pscalculate{16/3}}
\psaxes[labels=none,Dx=2,Dy=\a,xlabelPos=top,ticks=none]{->}(0,0)(-4.5,-6)(1,2.5)[$x$,-90][$y$,0]
\psplot[plotpoints=500,linewidth=1.2pt,yMaxValue=2.1,yMinValue=-6]{-5}{3.5}{1/3*x^3+2*x^2+4*x}

\uput[-45](0,0){$O$}
\uput[90](-2,0){$-2$}
\uput[90](-4,0){$-4$}
\uput[0](0,-\a){$-\dfrac{8}{3}$}
\uput[0](0,-\b){$-\dfrac{16}{3}$}
\uput[135](-2,-\a){$A$}
\uput[180](-4,-\b){$B$}
\psline[linestyle=dashed](0,-\a)(-2,-\a)(-2,0)
\psline[linestyle=dashed](0,-\b)(-4,-\b)(-4,0)
\psdots*(0,0)(-2,0)(-4,0)(0,-\a)(0,-\b)(-2,-\a)(-4,-\b)
\end{pspicture}
\end{document}

在此处输入图片描述

问题:

如何通过动画将 A 点从 B 点移动到 O 点并进行反向移动。

我对动画了解不多。

答案1

仅适用于latex->dvips->ps2pdf

\documentclass{article}
\usepackage{pstricks,pst-plot,pst-calculate,animate,amsmath}
\begin{document}

%-------------------- write timeline file ---------------------%
\newwrite\TimeLineFile
\immediate\openout\TimeLineFile=Func.txt
\immediate\write\TimeLineFile{::0x0,1}%
\multido{\i=2+1}{40}{\immediate\write\TimeLineFile{::\i}}
\immediate\closeout\TimeLineFile
%------------------- end timeline -----------------------%

\psset{algebraic}

\def\Func{1/3*x^3+2*x^2+4*x}
\def\b{\pscalculate{16/3}}

\def\drawFunc#1{%
    \edef\Y{\pscalculate{1/3*(#1)^3+2*(#1)^2+4*(#1)}}
    \psCoordinates[arrows=->,linecolor=blue,linestyle=dashed,
        dotstyle=o,dotscale=2,showpoints](#1,\Y)
    \uput[90](#1,0){$#1$}
    \uput[0](0,\Y){\Y}
    \uput[135](*#1 {\Func}){$A$}
}   


\begin{center}
\begin{animateinline}[controls,palindrome,timeline=Func.txt,
    begin={\begin{pspicture}(-4.5,-6)(1.1,2.75)},
    end={\end{pspicture}}]{10}
    %---- static material: axes, labels, curve ----%
  \psaxes[labels=none,xlabelPos=top,
          ticks=none]{->}(0,0)(-4.5,-6)(1,2.5)[$x$,-90][$y$,0]
  \psplot[plotpoints=500,linewidth=1.2pt,yMaxValue=2.1,yMinValue=-6]{-5}{3.5}{\Func}
  \psCoordinates[arrows=->,linestyle=dashed,dotstyle=o,dotscale=2,showpoints](*4 {\Func})
  \uput[-45](0,0){$O$}
  \uput[90](-4,0){$-4$}
  \uput[0](0,-\b){$-\dfrac{16}{3}$}
  \uput[180](-4,-\b){$B$}
  \psCoordinates[arrows=->,linecolor=blue,linestyle=dashed,dotstyle=o,dotscale=2,showpoints](*-4 {\Func})
  \newframe
    \multiframe{41}{rX=-4+0.1}{\drawFunc{\rX}}%
\end{animateinline}% 
\end{center}

\end{document}

在此处输入图片描述

与 gif 动画相同:

在此处输入图片描述

在没有时间线的情况下使用它:

\documentclass[pstricks]{article}
\usepackage[paperwidth=8cm,paperheight=10cm,margin=0mm]{geometry}
\usepackage{pst-plot,pst-calculate,multido,amsmath,animate}
\newpsstyle{coor}{arrows=->,linecolor=blue,linestyle=dashed,dotstyle=o,dotscale=1.5,showpoints}
\pagestyle{empty}
\begin{document}
    \psset{algebraic}

    \def\Func{1/3*x^3+2*x^2+4*x}
    \def\b{\pscalculate{16/3}}

\def\drawFunc#1{%
  \begin{pspicture}(-4.5,-6)(1.1,2.75)      
     \edef\Y{\pscalculate{1/3*(#1)^3+2*(#1)^2+4*(#1)}}
     \psCoordinates[style=coor](#1,\Y)
        \uput[90](#1,0){$#1$}
        \uput[0](0,\Y){\Y}
        \uput[135](*#1 {\Func}){$A$}
    \psaxes[labels=none,xlabelPos=top,ticks=none]{->}(0,0)(-4.5,-6)(1,2.5)[$x$,-90][$y$,0]
    \psplot[plotpoints=500,linewidth=1.2pt,yMaxValue=2.1,yMinValue=-6]{-5}{3.5}{\Func}
    \psCoordinates[style=coor](*-4 {\Func})
    \uput[-45](0,0){$O$}
    \uput[90](-4,0){$-4$}
    \uput[0](0,-\b){$-\dfrac{16}{3}$}
    \uput[180](-4,-\b){$B$}
\end{pspicture}%
}   

\begin{animateinline}[poster=last, controls, palindrome]{10}%
    \multiframe{41}{rA=-4.0+0.1}{\drawFunc{\rA}}%
\end{animateinline}

\end{document}

答案2

\documentclass[pstricks]{standalone}
\usepackage{pstricks-add,mathtools}
\def\f{1/3*x^3+2*x^2+4*x}
\psset
{
    unit=2cm,
    xfractionLabels,
    xfractionLabelBase=2,
    dx=\pscalculate{1/2},
}

\begin{document}
\foreach\x in{14,13,...,0}{%
\begin{pspicture}[algebraic](-4.6,-5.1)(1.3,2.8)
\psCoordinates[linestyle=dashed](*-3.5 {\f})
\psCoordinates[linestyle=dashed](*{-\x\space 4 div} {\f})
\psaxes{->}(0,0)(-4.4,-4.9)(1,2.5)[$x$,0][$y$,90]
\psplot{-3.9}{.5}{\f}
\end{pspicture}}
\end{document}

在此处输入图片描述

相关内容