MATLAB动画制作及举例应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生:** 指导老师:*** 2010-12-17
目录梗概
MATLAB制作动画的方法
电影动画及应用 程序动画及应用 总结
MATLAB制作动画的方法
• MATLAB中,动画的创建有两种方法:
电影动画:首先保存一系列的图形,然后按 照一定的顺序像电影一样的播放。 程序动画:在图形窗口中按照一定的算法连 续擦除和重绘图形对象。
附录(2)
• %将前面创建的电影动画中添加一个垂直的滚动条 • >> h=uicontrol('style','slider','position',[10 50 20 100],'Min',1,'Max',16,'Value',1) • >> for k=1:16 • plot(fft(eye(k+16))) • axis equal • set(h,'Value',k) • M(k)=getframe(gcf) %gcf为返回当前图形窗口句柄 • end • >> clf • >> axes('Position',[0 0 1 1]) • >> movie(M,30)
Xor:与Background模式相比,这种模式只擦除对象
本身。大多数的MATLAB程序动画都采用这种擦除模
式。
程序动画应用
程序动画应用
附录(1)
• • • • • • • • • %初始化一个电影矩阵 M=moviein(16); %创建电影 for k=1:16 plot(fft(eye(k+16))) axis equal M(k)=getframe;%调用getframe函数生成每个帧 end %运用for-end循环语句,循环次数为16 movie(M,30) %调用movie函数将电影动画矩阵 M(k)播放30次
电影动画的应用(1)
电影动画的应用(1)
电影动画的应用(2)
程序动画及应用
љ 在MATLAB中,可以采用重绘图形对象的方法来创
建程序动画。改变对象的方法可以触发MATLAB对 该对象进行重绘。 љ 创建程序动画的典型步骤是:
绘制一个图形对象, 通过在一个程序循环中改变该对象的x,y和z坐标值来实 现该对象的移动,从而形成动画。
љ 在创建MATLAB的程序动画时,图形擦除也是非常 重要的。
程序动画及应用
• 图形动态绘画中三种重要的擦除模式:
None:在移动图形ຫໍສະໝຸດ Baidu象时,MATLAB不进行擦除;
Background:在图形对象移走以后,MATLAB在原来 的位置用背景色进行重绘。在这种模式下,MATLAB 将原来的对象完全擦除,包括该对象下面的所有图形, 如栅格线等;
电影动画及应用
• 电影动画的步骤:
调用moviein函数对内存进行初始化,创建一个足够大
的矩阵,使之能够容纳基于当前坐标大小的一系列指
定的图形(此处称为帧)。 调用getframe函数生成每个帧。该函数返回一个列矢 量,利用这个矢量,就可以创建一个电影动画矩阵。 调用movie函数按照指定的速度进行指定次数播放该 电影动画。
附录(4)
• • • • • • • • • • • • • • • • A=[-8/3 0 0;0 -10 10;0 28 -1]; y=[35 -10 -7]'; h=0.01; p=plot3(y(1),y(2),y(3),'.','EraseMode','none',... 'MarkerSize',5);%set EraseMode to none axis([0 50 -25 25 -25 25]) hold on for i=1:4000 A(1,3)=y(2); A(3,1)=-y(2); ydot=A*y; y=y+h*ydot; %更改坐标值 set(p,'XData',y(1),'YData',y(2),'ZData',y(3)) drawnow i=i+1; end
附录(3)
• • • • • • • • • • • • • • • • • • • • %初始化一个电影矩阵 M=moviein(16); %创建电影 for k=1:16 plot(fft(eye(k+16))) axis equal M(k)=getframe;%调用getframe函数生成每个帧 end %运用for-end循环语句,循环次数为16 movie(M,30) %调用movie函数将电影动画矩阵M(k)播放30次 >> %将前面创建的电影动画中添加一个垂直的滚动条 h=uicontrol('style','slider','position',[10 50 20 100],'Min',1,'Max',16,'Value',1) for k=1:16 plot(fft(eye(k+16))) axis equal set(h,'Value',k) M(k)=getframe(gcf) %gcf为返回当前图形窗口句柄 end clf %清除当前图形 axes('Position',[0 0 1 1]) movie(M,30)
相关文档
最新文档