4.0 Maple动画的制作方法

所谓动画就是将一系列渐变的图形依次连续播放,利用人的视觉停留原理,使人得到到图形在动的感觉。

一、利用Maple的动画命令作动画

Maple有自己的动画命令:animatecurve 和 animate。

animatecurve作动画的格式为:

animatecurve(f(x), x=a…b)

它将函数 f(x) (a≤x≤b)的图形从a到b依次作出。

例 4.0.1 作曲线y=sinx (0≤x≤2π)的动画。
输入以下命令:

with(plots):
animatecurve(sin(x),x=0…2*Pi);

然后回车,界面出现画面。点击画面,出现动画方框,点击工具栏的动画播放键,即可播放动画。
输出动画:4.0 Maple动画的制作方法
我们常常需要将数学动画插入PPT课件。
但是Maple动画不能直接插入PPT幻灯片。
需要先将动画导出,保存为gif格式的文件,然后再将该文件作为图片插入PPT幻灯片。
保存Maple动画的方法:

右键点击画面–>Export As–>GIF–>给动画文件命名–>保存

animatecurve也可以作参数曲线的动画。
animatecurve作参数曲线动画的格式为:

animatecurve([x(t),y(t), t=a…b])

它将x=x(t), y=y(t) (a≤t≤b)的图形从a到b依次作出。

例 4.0.2 作参数曲线 x=cost, y=sint (0≤t≤2π)的动画。
输入以下命令:

with(plots):
x:=cos(t): y:=sin(t):
animatecurve([x(t), y(t), t=0…2*Pi]);

输出动画:4.0 Maple动画的制作方法

animate作动画的格式为:

animate(f(x,t), x=a…b, t=c…d, frame=n)

它对每一个 t ,作出函数 f(x,t) (a≤x≤b)的图形。
frame=n表示动画的帧数为n。

例 4.0.3 作曲线 y=sin(tx) (0≤x≤2π) 的动画 (t从1变到2)。
输入以下命令:

with(plots):
animate(sin(x* t), x=0…2*Pi, t=1…2, frames=50);

输出动画(一族正弦曲线):4.0 Maple动画的制作方法
例 4.0.4 作参数曲线 x=tcos(u), y=sin(u) (0≤u≤2π)的动画。(t 从1变到2)。

输入以下命令:

with(plots):
animate([t* cos(u),sin(u),u=0…2*Pi], t=1…2,
scaling=constrained,frames=30);

输出动画(一族椭圆):4.0 Maple动画的制作方法

二、利用seq定义动画序列,再利用display播放动画

这种方法是先定义一系列的图形,然后再依次播放出来。
其基本格式是:

M:=seq(plot(f(x,i), x=a(i)…b(i)), i=1…K):
display(M, insequnce=true);

第一行用seq定义动画序列,K是动画帧数。
第二行表示播放动画:insequence=true。

例 4.0.5 作曲线y=sinx (0≤x≤2π)的动画。
输入以下命令:

with(plots):
K:=30: ti:=i* 2* Pi/K:
M:=seq(plot(sin(x), x=0…ti), i=1…K):
display(M, insequence=true);4.0 Maple动画的制作方法

得到动画:4.0 Maple动画的制作方法

注意 以下命令将产生各帧图像,而不是动画:

with(plots):
K:=9: ti:=i* 2* Pi/K:
M:=seq(plot(sin(x), x=0…ti), i=1…K):
L:=display(M, insequence=true):
display(L); 4.0 Maple动画的制作方法
得到:
4.0 Maple动画的制作方法

例 4.0.6 作曲线y=sin(ix) (0≤x≤2π)的动画 (i从1变到10)。
输入以下命令:

with(plots):
M:=seq(plot(sin(i* x), x=0…2*Pi), i=1…10):
display(M, insequence=true); 4.0 Maple动画的制作方法

得到动画:4.0 Maple动画的制作方法

其它定义动画序列的方法

方法1.

M:=i->plot(f(x,i), x=a(i)…b(i)):
display(seq(M(i),i=1…K), insequence=true);

第一行定义动画序列M(i)。
第二行播放动画。

方法2

for i from 1 to K do
M[i]:=plot(f(x,i), x=a(i)…b(i))
od:
display(seq(M[i], i=1…K), insequence=true);

前三行定义动画序列 M[i]。最后一行播放动画。

这个方法虽然显得比较冗长和复杂,但是比较好操作,容易实现作者的动画构想,是我最喜欢和常用的方法。

例 4.0.7 作曲线 y=xsin(ix) (0≤x≤ 2π)的动画 (i从1变到10)。
输入以下命令:

with(plots):
M:=i->plot(x* sin(i* x), x=0…2*Pi):
display(seq(M(i), i=1…10), insequence=true);4.0 Maple动画的制作方法

得到动画:4.0 Maple动画的制作方法
输入以下命令:

with(plots):
M:=i->plot(x* sin(i* x), x=0…2*Pi):
display(display(seq(M(i),i=1…10), insequence=true));

输出各帧图像:4.0 Maple动画的制作方法

例 4.0.8 作曲线 y=sin(ix)/x (0≤x≤ 2π)的动画 (i从1变到10)。

输入以下命令:

with(plots):
K:=10: for i from 1 to K do
M[i]:=plot(sin(i* x)/x, x=0…2*Pi) od:
display(seq(M[i], i=1…K), insequence=true); 4.0 Maple动画的制作方法
得到动画:4.0 Maple动画的制作方法

返回《Maple图形与动画》目录