如何在 PStricks/Tikz 中制作正弦曲线动画

如何在 PStricks/Tikz 中制作正弦曲线动画

我想知道如何设置一个由两个并排或上下的“子动画”组成的动画,其中一个动画只显示从零到 2π1 的实数线,并且当我们从零移动到一时,数轴会被着色。同时,另一个动画将显示正弦(数字)的图,其中数字与我们在数轴上的位置一样远。因此,在动画结束时将显示正弦波的完整周期图。

答案1

我不知道您真正想要在哪里打印正弦曲线的值。不过,这里有一个例子:

\documentclass[border=10pt]{standalone}
\usepackage{animate}
\usepackage{pstricks-add}
\usepackage{multido}
\def\TINY{\fontsize{2pt}{2.1pt}\selectfont}
\begin{document}
  %-------------------- write timeline file ---------------------%
  \newwrite\TimeLineFile
  \immediate\openout\TimeLineFile=sinus.txt
  \immediate\write\TimeLineFile{::0x0,1}%
  \multido{\i=1+1}{37}{\immediate\write\TimeLineFile{::\i}}
  \immediate\closeout\TimeLineFile
  %------------------- assemble animation -----------------------%
  \psset{xunit=\pstRadUnit,yunit=1.5,dashadjust=false}
  \begin{animateinline}[controls,timeline=sinus.txt,
    begin={\begin{pspicture}(-2,-1.5)(6.6,2)},
    end={\end{pspicture}}]{3}
    %---- static material: axes, labels, curve ----%
    \psaxes[trigLabels,trigLabelBase=3]{->}(0,0)(-2mm,-1.5)(6.5,1.5)[t,-90][$y=\sin(t)$,0]
    \psplot[xunit=1cm,linestyle=dashed,algebraic]{0}{\psPiTwo}{sin(x)}
    \newframe
    \multiframe{37}{r=0+0.174444,i=0+1}{\psset{xunit=1cm,linecolor=red}
      \pscustom[xunit=1cm,fillcolor=red!30,fillstyle=solid,
        linestyle=none,algebraic,dimen=inner]{%
        \psplot{0}{\r}{sin(x)}
        \psline(!\r\space 0)
      }
      \psplot[xunit=1cm,linestyle=dashed,linecolor=black,
         algebraic]{0}{\r}{sin(x)}
      \psdot[opacity=0.4,dotsize=3mm](!\r\space dup exch RadtoDeg sin)
      \psline[linestyle=dashed](!\r\space dup exch RadtoDeg sin)(!\r\space 0)
      \multido{\rA=0+0.174444}{\i}{\rput[lc](!-1.5 \rA\space RadtoDeg sin){\makebox[1cm][l]{\TINY\rA}}}
      \rput[lc](!-1.5 \r\space  RadtoDeg sin){\makebox[1cm][l]{\textcolor{red}{\TINY\r}}}%
    }
  \end{animateinline}
\end{document}

使用全屏模式的 Acrobat Reader 查看。动画 PDF 可从以下网址获取http://perce.de/pub/animate_sin.pdf

在此处输入图片描述

相关内容