matlab中动画设计

上传人:第*** 文档编号:61573967 上传时间:2018-12-04 格式:PPT 页数:16 大小:541KB
返回 下载 相关 举报
matlab中动画设计_第1页
第1页 / 共16页
matlab中动画设计_第2页
第2页 / 共16页
matlab中动画设计_第3页
第3页 / 共16页
matlab中动画设计_第4页
第4页 / 共16页
matlab中动画设计_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《matlab中动画设计》由会员分享,可在线阅读,更多相关《matlab中动画设计(16页珍藏版)》请在金锄头文库上搜索。

1、MATLAB中的动画设计,同济大学,MATLAB中的动画设计,电影动画,擦除动画,3,质点动画,1,2,MATLAB中的动画设计质点动画,1、质点动画 产生一个顺着曲线轨迹运动的质点来操作 使用comet、comet3函数 最简单的动画产生方式,MATLAB中的动画设计质点动画,step1:求解出质点完整的运动轨迹坐标x,y和z step2:使用comet或者comet3直接绘制动点,设计步骤,MATLAB中的动画设计质点动画,【例1】质点绕圆轨迹运动 %使用函数comet建立质点绕圆运动的动画 clear t=linspace(0,2*pi,10000); x=cos(t); y=sin(t

2、); plot(x,y);%以便比较comet是否跟着轨迹走 axis square; hold on; comet(x,y,0.03),MATLAB中的动画设计质点动画,【例2】质点绕螺旋轨迹运动 %使用函数comet3建立质点绕圆运动的动画 clear t=0:pi/500:10*pi; plot3(sin(t),cos(t),t) axis square; %hold on; comet3(sin(t),cos(t),t,0.5),MATLAB中的动画设计质点动画,【例3】平抛运动 %平抛运动 clear vx = 40; t = 0:0.01:10; x = vx*t; y = -9.

3、8*t.2/2; comet(x,y),MATLAB中的动画设计质点动画,【例4】导弹发射 %导弹发射 vx = 100*cos(1/4*pi); vy = 100*sin(1/4*pi); t = 0:0.001:15; x = vx*t; y = vy*t-9.8*t.2/2; comet(x,y),MATLAB中的动画设计电影动画,2、电影动画 从不同的视角拍下一系列对象的图形,并保存到变量中,然后按照一定的顺序像电影一样播放。 使用getframe、movie函数。,getframe函数可以捕捉动画帧,并保存到矩阵中。该函数的主要格式有: (1)F=gefframe,从当前图形框中得到

4、动画帧 (2)F=gefframe(h),从图形句柄h中得到动画帧 (3)F=getframe(h,rect),从图形句柄h的指定区域rec中得到动画帧 当创建了一系列动画帧后,可利用movie函数播放这些动画帧。该函数的主要格式有: (1)movie(M),将矩阵M中的动画帧播放一次 (2)movie(M,n),将矩阵M中的动画帧播放n次 (3)movie(M,n,fps),将矩阵M中的动画帧以每秒fps帧的速度播放n次,MATLAB中的动画设计电影动画,step1:调用getframe函数生成每个帧。该函数返回一个列矢量,利用这个矢量,就可以创建一个电影动画矩阵。 step2:调用movi

5、e函数按照指定的速度和次数运行该电影动画。 step3:调用movie2avi函数可以将矩阵中的一系列动画帧转换成avi视频文件。这样,即使脱离了matlab环境也可播放动画。,程序结构,设计步骤,MATLAB中的动画设计电影动画,【例5】绕Z轴旋转的peak动画 %绕Z轴旋转的Peak动画 X,Y,Z=peaks(30); surf(X,Y,Z); set(gca,visible,off); colormap(hot) shading interp %记录电影 for i=1:15 view(-45+15*(i-1),30) %视角的改变 m(:,i)=getframe;%抓取画面值 end

6、 movie(m)%播放画面,MATLAB中的动画设计擦除动画,3、擦除动画 使用Matlab的绘图函数不断重复绘制图形对象,重绘过程中递增式地改变图形对象位置将产生动画效果。 使用drawnow命令;设置擦除模式(EraseMode)。 最常用的动画设计方式。,Matlab的图形绘制函数允许采用不同的擦除模式来擦除原来的对象,不同的擦除模式将产生不同的动画效果。擦除模式是通过没置“EraseMode”属性来完成的,一共有三种擦除模式: (1)none:重新绘制图形对象时不擦除原来的对象,这种模式可动态演示图形的生成过程,如曲线和旋转曲线的生成过程。 (2)background:在重新绘制图形

7、对象之前。用背景色重绘对象来达到擦除原来图形对象的目的。该模式会擦除任何对象和它下面的任何图形。 (3)Xor:在重新绘制图形对象之前,只擦除原来的对象,不会擦除其他对象或图形。这种模式能产生图形对象移动的效果。,MATLAB中的动画设计擦除动画,step1:设置重绘对象的擦除模式EraseMode模式 step2:在循环语句中使用set更改图形的xdata,ydata和zdata等坐标数据。 step3:使用darwnow命令刷新屏幕,程序结构,设计步骤,set(h,erasemode,erasemode)%h是需要执行动画图像的句柄,一般都是由line或者plot创建 for i=1:n

8、set(h,xdata,xdata,ydta,ydata)%更新图像的坐标数据 drownnow%刷新屏幕 end,MATLAB中的动画设计擦除动画,【例6】随时间衰减的正弦函数 %随时间衰减的正弦函数 t=0:0.005:10*pi; %产生曲线并用xor方式抹去旧曲线 h=plot(t,sin(2*t).*exp(-t/5),EraseMode,xor); set(gcf,Position,450,350,350,250) for i=1:200 y=sin(2*t+i/10).*exp(-t/5); set(h,ydata,y);%不断更新y值 drawnow; end,MATLAB中的动画设计擦除动画,【例7】运动的小球,【例9】时钟演示,【例8】单摆横梁,【例10】小球绕跑道运动,Thanks!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号