Matlab_制作动画_第1页
Matlab_制作动画_第2页
Matlab_制作动画_第3页
Matlab_制作动画_第4页
Matlab_制作动画_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1MatlabMatlab 制作动画制作动画2涉及的主要问题o 一般步骤o 使用的主要函数及功能o 示例程序及运行结果o 存在的问题3一般步骤:一般步骤:o确定动画的帧数确定动画的帧数nframeso画出图形画出图形o为为nframes帧幅图形分配足够内存空间帧幅图形分配足够内存空间o用用getframe生成动画的数据矩阵生成动画的数据矩阵o以每秒以每秒n幅的速度播放动画幅的速度播放动画4函数及功能o M=moviein(nframes)n为nframes帧幅图分配足够内存空间o movie(n)n以每秒n幅的速度播放动画 o getframe n对当前的图象进行快照,截取一幅画面信息(称为动

2、画中的一帧),一幅画面信息形成一个很大的列向量o meshgrid:用于产生x-y平面上的网格数据o mesh:绘制网面图5函数及功能o imwrite():将数据转换成图像文件 o surf:画立体曲面图o peaks:生成一个凹凸有致的曲面o figure:创建一个数字图形图像o aviobj = avifile(filename,PropertyName,value,.)nAVIFILE returns a handle to an AVI file object, aviobj.o mov = aviread(filename,index)reads the AVI movie fil

3、ename into the MATLAB movie structure mov 6保存动画生成avi格式的电影文件o 创建电影剪辑文件,并存储起来: naviobj=avifile(文件名.avi,fps,3);%定义一个avi文件,%AVIOBJ = AVIFILE(FILENAME,PropertyName,VALUE,PropertyName,VALUE,.)%各属性详细说明见matlab帮助nfor i=1:n%在当前窗体上生成一帧图像frame=getframe(gca); %获得一帧图像aviobj=addframe(aviobj,frame);%并加到电影剪辑文件中endav

4、iobj=close(aviobj);%关闭文件,结束数值仿真模拟过程。7保存动画生成avi格式的电影文件o 直接利用函数movie2avinmovie2avi(mov,filename.avi)nmov由getframe获得,生成文件名为filename.avi的视频文件o 一般格式:for i=1:n figure(i) F(i)=getframe; end; movie2avi(F,.filename.avi)o 8保存动画直接保存gif动画o 一般步骤:m(:,k)=getframe; %构造gif图像的帧, nn(:,:,:)=getframe; %转换为可以直接输出的格式 %如果要

5、制作彩色的图像,你只能把生成的彩色图像单独制作(使用其他软件) nn1=nn.cdata; nn1=rgb2gray(nn1); imwrite(nn1,out.gif,gif,WriteMode,append)o 9o 画sinx,cosx图形o 二维动画o 三维动画10o 画sinx,cosx图形nx=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x)o 二维动画 x = -pi:pi/30:pi;h = plot(x,cos(x),o,MarkerEdgeColor,k,MarkerFaceColor,r,MarkerSize,8,EraseMode,Xor)

6、for j = 1:3000 y = sin(3*x+0.006*j); set(h,ydata,y); drawnow;endo 11播放动画o 二维动画 s =0.2; x1=0; % 确定起始点横坐标x1及其增量 nframes = 50; % 确定动画总帧数 for k = 1:nframes x1= x1+s; % 确定画图时横坐标终止值x1 x =0:0.01:x1; y =sin(x); plot(x,y); % 在x=0 x1作y=sin(x)曲线 axis(0 2*pi -1 1) % 定义坐标轴范围 grid off % 不显示网格线 M(k) = getframe; %

7、将当前图形存入矩阵M(k) end movie(M,3) % 重复3次播放动画M 12保存动画的示例1o 三维动画x,y,z=peaks(30); %peaks产生一个凹凸有致的曲面 surf(x,y,z) %用X和Y定义x-y坐标网格,Z定义网格上每一点的高度,来生成三维曲面三维曲面 axis(-3 3 -3 3 -10 10) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end movie(m) movie2avi(m,out.avi)o 13保存动画的示例2ofunction avimakeowar

8、ning off;oload data /data是已有的文件oM,N,K=size(data);odata=data/(max(abs(data(:);oaviobj = avifile(mymovie.avi,fps,10); ofor kk=1:10:K o imagesc(data(:,:,kk); o set(gca,clim,-1 1);o colormap(hsv(128) o frame = getframe(gca);o aviobj = addframe(aviobj,frame);oendoaviobj = close(aviobj);14其它转换gif动画的方法o 直接

9、作gif动画的软件较多,比如Ulead GIF Animator,批量格式转换用XnView 15其它动画示例程序Z = peaks; surf(Z)axis tightset(gca,nextplot,replacechildren);for j = 1:50 surf(sin(2*pi*j/20)*Z,Z) F(j) = getframe;endmovie(F,20)16其它动画示例程序clear;clc; x,y=meshgrid(-8:.1:8); for j=1:20f=(x,y)(sin(sqrt(11-j)*(x.2+y.2)./sqrt(11-j)*(x.2+y.2)+eps); z=f(x,y); surf(x,y,z);shading interp; M(j) = getframe; if j=1 I,map=rgb2ind(M(j).cdata,256)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论