MATLAB入门简单动画制作.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

MATLAB程序设计入门篇

动画制作张智星清大资工系补充内容:方炜台大生机系

6-1MATLAB动画简介6-2以电影方式产生动画(a).电影动画之范例一(b).电影动画之范例二(c).电影动画之范例三6-3以对象方式产生动画(a).曲线的动画(b).曲线的EraseMode(c).对象动画之范例

6-1MATLAB动画简介MATLAB产生动画的方式有两种:电影方式:以影像的方式预存多个画面,再将这些画面快速的呈现在屏幕上,就可以得到动画的效果。此种方式类似于电影的原理,可以产生很缤纷亮丽的动画,但是其缺点为每个画面都必需事先备妥,无法进行及时成像(Real-timeRendering),而且每个画面,以至于整套动画,都必需占用相当大的内存空间。物件方式:在MATLAB的「握把式图形」(HandleGraphics,详见本书第七章)概念下,所有的曲线或曲面均可被视为一个对象,MATLAB可以很快的抹去旧曲线,并产生相似但不同的新曲线,此时就可以看到曲线随时间而变化的效果。使用对象方式(即握把式图形)所产生的动画,可以呈现实时的变化,也不需要太高的内存需求,但其缺点是较难产生太复杂的动画。

6-2以电影方式产生动画以电影方式来产生动画,可由下列两个步骤来达成:使用getframe指令来抓取图形做为电影的画面,每个画面都是以一个行向量的方式,置放于整个代表电影的矩阵。使用movie指令来播放电影,并可指定播放的重复次数及每秒播放的画面数目。

电影动画之范例一在下例中,我们将以不同的角度来显示peaks函数,并将其结果以电影的方式来呈现动画。范例6-1:movie01.mclearM %清除电影资料矩阵Mn=50; %抓取50个画面peaks;fprintf(抓取画面中...\n);fori=1:n view([-37.5+i*360/n,30]); %改变观测角度 M(i)=getframe; %抓取画面,并存入电影资料矩阵Mendfprintf(播放电影中...\n);movie(M,3); %播放电影三次

电影动画之范例一最后一个frame的画面

电影动画之范例二将peaks函数画在圆盘上,然后再变换此函数的高度,以动画呈现范例6-2:movie02.mclearM %清除电影资料矩阵Mr=linspace(0,4,30); %圆盘的半径t=linspace(0,2*pi,50); %圆盘的极坐标角度[rr,tt]=meshgrid(r,t);xx=rr.*cos(tt); %产生圆盘上的x坐标yy=rr.*sin(tt); %产生圆盘上的y坐标zz=peaks(xx,yy); %产生peaks在极坐标的数据n=30; %抓取30个画面scale=cos(linspace(0,2*pi,n));fprintf(抓取画面中...\n);fori=1:n surf(xx,yy,zz*scale(i)); %画图 axis([-infinf-infinf-8.58.5]); %固定图轴的范围 boxon M(i)=getframe; %抓取画面,并存入电影资料矩阵Mendfprintf(播放电影中...\n);movie(M,5); %播放电影5次

电影动画之范例二最后一个frame的画面

电影动画之范例三改变影像的色盘矩阵,让影像出现「从正片变到负片」的效果范例6-3:movie03.mclearM %清除电影资料矩阵Mloadclown.matimage(X);colormap(map); %画出小丑脸n=30; %抓取30个画面scale=cos(linspace(0,2*pi,n));fprintf(抓取画面中...\n);fori=1:n colormap(((i-1)*(1-map)+(n-i)*map)/n); %改变色盘矩阵 M(i)=getframe; %抓取画面,并存入电影资料矩阵Mendfprintf(播放电影中...\n);movie(M,-5); %播放电影5次(含正向与逆向播放)

电影动画之范例三在上述范例中,正片(如下张投影片图左)的色盘矩阵是map,而1-map则是负片(如下张投影片图右)的色盘矩阵,因此我们在抓影片时,让色盘矩阵进行渐

文档评论(0)

OfficeDocs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档