matlab制作动画.doc_第1页
matlab制作动画.doc_第2页
matlab制作动画.doc_第3页
matlab制作动画.doc_第4页
matlab制作动画.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

matlab制作动画一般来说,matlab制作动画有四种方式。第一 、以质点运动轨迹的方式显示使用comet、comet3函数,前者是二维,后者是三维comet(y)显示质点绕向量y,comet(x,y)显示质点绕向量y与x,comet(x,y,p),其中为轨迹尾巴的长度以comet(x,y)为例,显示平抛运动vx = 40;t = 0:0.001:10;x = vx*t;y = -9.8*t.2/2;comet(x,y)显示导弹发射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)匀速圆周运动sita = 0:0.0001:2*pi;r = 10;x=r*cos(sita);y=r*sin(sita);comet(x,y)comet3与comet的用法相类似,可以在帮助文件里的例子t = -10*pi:pi/250:10*pi;comet3(cos(2*t).2).*sin(t),(sin(2*t).2).*cos(t),t)第二、以电影播放的方式显示保存想要产生动画的图片,存储为一系列各种类型的二维、三维图,再像放电影的方式按次序播放出来。步骤由getframe函数将当前的图片抓取为电影的画面,再由movie函数将动画显示出来。如:x,y = meshgrid(-1.05:.2:3.75);z = x.*exp(-x.2-y.2);axis tight;set(gca,nextplot,replacechildren);for j = 1:40surf(x*sin(pi*j/100),y*sin(pi*j/100),z*sin(-pi*j/100);m(j) = getframeendmovie(m)第三、以对象方式显示设置对象的属性EraseMode,更新对象来产生新图,drawnow()函数进而覆盖旧图,从而使得图形不断发生变化。例:x = -pi:pi/30:pi;h = plot(x,cos(x),o,MarkerEdgeColor,k,MarkerFaceColor,r,MarkerSize,8,EraseMode,Xor)for j = 1:10000y = 1/2*sin(3*x+0.006*j);set(h,ydata,y);drawnow;end第四、以旋转颜色的方式显示matlab中如何输出avi格式影片文件以上文穿越(fly through)图形动画实例为基础,将屏幕上显示的动画保存到avi格式文件中。clc; %清屏clear all; %清除所有变量load wind; %加载matlab自带数据程序wind_speed = sqrt(u.*u + v.*v + w.*w); %计算风速hpatch=patch(isosurface(x,y,z,wind_speed,35); %isosurface计算wind_speed=45的等势面%patch命令绘制等势面isonormals(x,y,z,wind_speed,hpatch); %isonormals计算等势面的正交向量,使画面更光滑set(hpatch,FaceColor,red,EdgeColor,none); %设定等势面的表面颜色为红色daspect(1 1 1); ta aspectf verts=reducepatch(isosurface(x,y,z,wind_speed,45),.05);% reducepatch ,减少需要描绘等势面所需要表面数, 减少至 5%hcone=coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),2); %绘制穿越等势表面的圆锥流体set(hcone,FaceColor,blue,EdgeColor,none);camproj perspective %设置该图形的投影方式为透视camva(25); %设置视角为25度hlight = camlight(headlight); %在照相机出创建光源.set(hpatch,AmbientStrength,.1,. %设置环境光的光度为0.1,表面环境光近乎为黑色SpecularStrength,1,. %设置块对象的镜面反射强度为1DiffuseStrength,1); %设置快对象的漫反射强度为1set(hcone,SpecularStrength,1); %设置锥形流体的镜面反射强度为1set(gcf,Color,k); %将图像窗的颜色设置为黑色lighting phong %sets the lighting to phong.set(gcf,Renderer,zbuffer); %设置光源的着色属性为zbuffer,也可以尝试openGLhsline=streamline(x,y,z,u,v,w,80,30,11); %创建一个从点(80,30,11)开始的流线xd = get(hsline,Xdata); %取得这条流线的x,y,z坐标yd = get(hsline,Ydata);zd = get(hsline,Zdata);delete(hsline); %流线已无用,可删除%以下为此动画的核心部分aviobj=avifile(fly_through.avi,fps,3);%创建avi对象,命名为fly_through.avi, 3帧每秒for i=1:length(xd)-50 %从点(80,30,11)开始,到终点前的50个点出结束。campos(xd(i),yd(i),zd(i); %设定照相机的位置为当前点位置camtarget(xd(i+5),yd(i),zd(i); %设置照相机的目标位置,在照相机位置向前5个点出camlight(hlight,headlight); %光源也移至照相机处drawnow %绘制移动后的图形frame=getframe(gcf); %获取当前frameaviobj=addframe(aviobj,frame); %将当前图像加入到avi对象中endaviobj=close(aviobj); %结束时关闭avi对象%注意,此方法,运行时不能移动或改变动画窗口的大小。function makeavi(filepath,frames,format)% This function make AVI video from images% filepath: the location of target image% frames: the numbles of frame that you want to use % fromat: the format of images%=设置相关属性=location=filepath;fig=figure;set(fig,DoubleBuffer,on);set(gca,xlim,-80 80,ylim,-80 80,.NextPlot,replace,Visible,off)aviObj=avifile(examples.avi); % Create a new AVI fileaviObj.Quality = 100; %只对压缩格式有效,0,100,default:75aviObj.fps=1; %the speed of the AVI movie in frames per second (fps),default:15 fpsaviObj.Compression=None; % compression codec指定压缩编解码器%=设置黑白图像属性=%cola=0:1/255:1; %cola=cola;cola;cola;%cola=cola;%aviobj.colormap=cola;% =多帧循环开始,读序列图像=for num=1:framesIm_origin = imread( strcat(location,n

温馨提示

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

评论

0/150

提交评论