matlab动画技术

matlab动画技术

ID:39971191

大小:474.00 KB

页数:43页

时间:2019-07-16

matlab动画技术_第1页
matlab动画技术_第2页
matlab动画技术_第3页
matlab动画技术_第4页
matlab动画技术_第5页
资源描述:

《matlab动画技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.程序动画从计算机图形学上看,动画就是绘制的图形发生变化。这个变化不能太快,也不能太慢,要被人的视觉接受。在程序执行时,能够使图形变化达到视觉要求。例程序动画制作。下面程序就完成了一个动画。[X,Y]=meshgrid(-10:1:10);Z=X.^2/36-Y.^2/25;h=mesh(Z)fori=1:10:360rotate(h,[20,3,56],i)pause(0.1)end程序动画与电影动画程序中rotate函数是Matlab提供的一个图形变换函数。函数rotate(h,[20,3,56],i)中,h是图形句柄,表

2、示Mesh(Z)绘制的图形;[20,3,56]决定了旋转轴方向;i表示旋转角度,单位是度。程序运行后,观看到的效果是一个面片在飞舞。为了更好的观察面片的变化情况,改动上面程序为:fori=1:6subplot(2,3,i)[X,Y]=meshgrid(-10:1:10);Z=X.^2/36-Y.^2/25;h=mesh(Z)rotate(h,[20,3,56],i*55)axistightoffpause(0.1)end绘制出的动画效果比较好,为了仔细观察,下图截取了动画的一些中间图形。这些图形是旋转时一些变化瞬间的图形。面片是

3、一样的,只不过是旋转过程中看到的各个不同侧面而已。程序动画很多时候借助pause函数来完成。2.绘制图形制作电影动画Matlab提供了动画制作函数movie,使用movie函数生成动画就称为电影动画。生成动画必须有很多帧图形连续播放,如果这些图形是绘制而成的,就叫这种动画为绘制图形的电影动画。程序中使用了moviein函数创建一个结构体数组,专门用来装载动画的各帧;使用getframe函数(命令)把绘制出的图形装入结构体。其中,绘制每一帧图形之前,先使用了FFT变换函数。程序最后一句是播放函数,以每秒5幅的速度播放画面。M=mo

4、viein(16);forj=1:16plot(fft(eye(j+16)));axisequalM(:,j)=getframe;pause(0.1)endmovie(M,5)例播放一个不断变化的眼球程序段。getframe函数getframe函数可将当前图形窗口作为一个画面取下并保存,格式为:m=getframe。它将每一帧画面信息数据截取下来整理成列向量。该函数截取图形的点阵信息,图形窗口的大小,对数据向量的大小影响较大,窗口越大,所需存储容量越大。而图形的复杂性对数据容量要求没有直接的关系。moviein函数函数m=mov

5、iein(n)用来建立一个足够大的n列的矩阵m,用来保存n幅画面的数据,以备播放。movie(m,k)以每秒k幅图形的速度播放由矩阵m的列向量所组成的画面。movie函数改动前面的程序如下,能够制作出新的动画。右边程序可以观察到一个椭圆转化成矩形的过程。左边程序演示一个球体从多面体演化来的过程。M=moviein(16);forj=1:16sphere(j);axisequalM(:,j)=getframe;endmovie(M,10)M=moviein(16);forj=16:-1:1rectangle('Position',

6、[4,5,15,10],'Curvature',j/16);M(:,j)=getframe;axisequalendmovie(M,2)3.基于图像制作电影动画动画效果是由于一幅幅图形变化产生的,如果这些图形来自于图像,那么就称该动画为基于图像的动画。(a)1.jpg(b)2.jpg(c)3.jpg下列3个图象是用画图工具绘制出来的,分别命名为1.jpg、2.jpg与3.jpg,存储在D盘根目录下。制作动画的三幅图像fori=1:3k=int2str(i);k1=strcat('d:',k,'.jpg');a1=imread(

7、k1);image(a1);m(:,i)=getframeendmovie(m,10)下面程序使用getframe函数装载上述几幅图像,使用movie函数播放这几幅图像就是一个动画。4.几个例题例下述程序播放一个直径不断变化的球体。n=30[x,y,z]=spherem=moviein(n);forj=1:nsurf(j*x,j*y,j*z)m(:,j)=getframe;endmovie(m,30);例三维图形的影片动画。clf;shg,x=3*pi*(-1:0.05:1);y=x;[X,Y]=meshgrid(x,y);R=

8、sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;h=surf(X,Y,Z);colormap(jet);axisoffn=12;mmm=moviein(n);fori=1:nrotate(h,[001],25);mmm(:,i)=getframe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。