书签 分享 收藏 举报 版权申诉 / 63
上传文档赚钱

类型Matlab动画技术课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4376774
  • 上传时间:2022-12-03
  • 格式:PPT
  • 页数:63
  • 大小:439KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Matlab动画技术课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Matlab 动画 技术 课件
    资源描述:

    1、2021/3/26Matlab动画技术动画技术 ppt课件课件1第五讲第五讲 Matlab动画技术动画技术2021/3/26Matlab动画技术动画技术 ppt课件课件2参考文献:基于Matlab的计算机图形与动画技术于万波 编著清华大学出版社,20072021/3/26Matlab动画技术动画技术 ppt课件课件3一、动画制作方法一、动画制作方法(一)时间函数(一)时间函数可以使用Timer函数创建计时器对象,如:Matlab提供了许多与动画制作相关的函数,能够比较容易完成动画的制作。1.Timer 函数函数mytimer=timer(TimerFcn,fPatch,StartDelay,6

    2、);start(mytimer)关键词当前目录中的程序名称,其程序见下一页。程序运行后,6秒钟后才执行程序fPatch.m。用start()函数激活计数器对象,6秒钟后才执行程序fPatch.m。2021/3/26Matlab动画技术动画技术 ppt课件课件4程序:fpatch.m功能:使用patch函数绘制正方体网格图与表面图。vert=1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1 2;fac=1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8;subplot(1,3,1)patch(faces,fac

    3、,vertices,vert,FaceColor,w);view(3);subplot(1,3,2)patch(faces,fac,vertices,vert,FaceVertexCData,hsv(6),FaceColor,flat);view(3);subplot(1,3,3)patch(faces,fac,vertices,vert,FaceVertexCData,hsv(8),FaceColor,interp);view(3);正方体网格图正方体网格图各面着色正方体各面着色正方体插值着色正方体插值着色正方体2021/3/26Matlab动画技术动画技术 ppt课件课件5该计时器对象执行

    4、如下操作:一个计时器中可以同时对多个M文件进行不同的定时操作。如:当使用start函数启动计时器时执行file2;Mtimer=timer(TimerFcn,file1,StartFcn,file2,StopFcn,file3,ErrorFcn,file4)出错时执行file4。当使用stop函数终止计时器时执行file3;将file1作为基本计时器代码执行;2021/3/26Matlab动画技术动画技术 ppt课件课件6l使用clock函数可以返回当前时间。2.当前日期与时间当前日期与时间clock ans=1.0e+003 2.0060 0.0090 0.0190 0.020 0.0310

    5、 0.0384当前机器时间是2006年9月19日20点31分38.4秒。l使用now函数将返回当天的日期值。这个时间的单位是天,转换成普通日期是2008年8月21日19点30分53秒左右(误差小于1分钟)。format long;now ans=7.336418131145024e+0052021/3/26Matlab动画技术动画技术 ppt课件课件7l使用datestr()函数可以将now函数返回的日期值转换成日期字符串。l使用date函数可以返回dd-mmm-yy格式的当天日期。date ans=21-Aug-2008 l使用datenum()函数可以将日期字符串变成日期值datenum(

    6、2008,8,21)ans=733641 datestr(7.336418131145024e+005)ans=21-Aug-2008 19:30:53 2021/3/26Matlab动画技术动画技术 ppt课件课件8l函数cputime计算自当前Matlab程序启动之后到运行结束所占用的CPU时间(单位是秒)。3.计时函数计时函数t0=cputime;fpatch;cputime-t0 ans=0.0156程序fpatch.m的运行时间是0.0156秒。l函数etime计算两个时间向量的间隔。t1=clock;fpatch;etime(clock,t1)ans=0.0150程序fpatch.

    7、m的运行时间是0.0150秒。之所以比前面语句的计算时间少,是由于该程序已从硬盘装入等原因2021/3/26Matlab动画技术动画技术 ppt课件课件9l计算运行时间的函数还有 tic 函数与 toc 函数,前者启动一个秒表,表示计时开始;后者则停止这个秒表,并且计算运行时间。tic;plot(rand(50,5);toc Elapsed time is 0.147644 seconds.2021/3/26Matlab动画技术动画技术 ppt课件课件10 pause()函数是延迟等待函数,例如,程序中如果出现pause(5),那么在执行到这句话的时候,停留5秒,然后继续。4.pause函数函

    8、数for i=-2*pi:0.5:2*piR=cos(i)sin(i)0;-sin(i)cos(i)0;0 0 1;vert=1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1 2;vert=vert*R;fac=1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8;pause(0.1)patch(faces,fac,vertices,vert,FaceVertexCData,hsv(8),FaceColor,interp);view(3)end例例 使用pause函数制作动画。程序是先绘制一个长方体,然后隔0.

    9、1秒又绘制出另外一个长方体,新长方体的顶点坐标经过了变换,此变换是乘以矩阵R完成的,该矩阵是绕Z轴旋转矩阵。如此下去,绘制出下一页所示的图形,从而完成了此动画。2021/3/26Matlab动画技术动画技术 ppt课件课件11 如果没有pause(0.1),那么就直接绘制出上图,没有了动画效果。如果把 R=cos(i)sin(i)0;-sin(i)cos(i)0;0 0 1;变换成 R=cos(i)0 sin(i);0 1 0;-sin(i)0 cos(i);那么就是绕Y轴旋转。2021/3/26Matlab动画技术动画技术 ppt课件课件12(二)相机与视点(二)相机与视点相机与视点的概念与

    10、动画制作密切相关。1.函数函数camdolly()()surf(peaks)for i=0:0.05:0.5 camdolly(i,0,0)pause(0.2)end表示左右移动 i 个单位,i 为正则向左,为负则向右。camdolly函数的第3个参数表示沿视轴移动。用来移动相机位置和目标位置camdolly(0,i,0)上下移动 i 个单位camdolly(0,i,0,fixtarget)只移动相机,物体不移动2021/3/26Matlab动画技术动画技术 ppt课件课件132.函数函数camorbit()与()与camroll()()surf(peaks)axis offfor i=1:3

    11、6 camorbit(10,0,data,0 1 0)pause(0.2)endl函数camorbit(d1,d2)根据d1与d2的大小(单位是度)绕相机目标点旋转相机,d1表示水平旋转角度,d2表示垂直旋转角度。l函数camroll操纵相机绕视轴旋转 camroll(d)按照d指定的大小绕相机视轴旋转相机,视轴由经过相机位置和相机目标点的直线确定。camroll(h,d)操作由第一个句柄参数h确定的坐标系。2021/3/26Matlab动画技术动画技术 ppt课件课件143.函数函数campan()()surf(peaks)axis vis3dfor i=1:720 campan(2,0)p

    12、ause(0.01)endl函数campan(dt,dp)按照 dt 和 dp 的大小绕相机旋转目标点,dt 是水平旋转角度,dp 是垂直旋转角度。l函数campan还可以添加一个或两个参数campan(dt,dp,s1,s2)该程序绕相机位置水平旋转了72021440度,即4圈,转完后又回到原先位置,一共停留时间7200.017.2秒。参数s1用来确定旋转中心,参数s2用来确定旋转轴。l该函数还可以在第一个参数位置上加入坐标系句柄,决定操作哪一个坐标系,默认是操作当前坐标系。2021/3/26Matlab动画技术动画技术 ppt课件课件154.函数函数campos()()surf(peaks

    13、)axis vis3d offfor x=-200:10:200 campos(x,0,0)drawnowendcampos该程序使相机沿x轴方向运动。axis vis3d off是取消了三维视觉功能,取消三维视觉功能后不论是campos(x,0,0),还是campos(0,y,0),或是campos(x,y,z)效果都是垂直屏幕表面运动,可以更清晰的观察运动的情况。该函数设置或查询相机的位置,其调用格式如下:返回相机在当前坐标系中的位置campos(x,y,z)将相机位置设置为当前坐标系中(x,y,z)处2021/3/26Matlab动画技术动画技术 ppt课件课件16为了验证campos函

    14、数不带参数时的功能,设计如下程序:a1=campossurf(peaks)a2=camposaxis vis3d offa3=camposfor x=-200:10:200 campos(x,0,0)drawnowenda4=camposa1=0.5000 0.5000 9.1603a2=-203.2855-327.0090 86.6025a3=-194.1541-317.7286 83.9027a4=200 0 0该程序中设置了4个campos,返回了相机的4个位置,分别是:其中a1的值是相机默认位置,a4是程序运行完成后的相机位置。2021/3/26Matlab动画技术动画技术 ppt课件

    15、课件175.函数函数camtarget()()surf(peaks)for i=1:100 camtarget(i,0,0)pause(0.01)endcamtarget该程序使相机目标点(物体)沿x轴移动。该函数设置或查询相机目标点的位置,调用格式为:返回相机目标点在当前坐标系中的位置camtarget(x,y,z)将相机目标点位置设置为当前坐标系中(x,y,z)处改为camtarget(0,i,0)沿y轴移动改为camtarget(0,0,i)沿z轴移动2021/3/26Matlab动画技术动画技术 ppt课件课件186.函数函数camva()与()与camzoom()()uicontro

    16、l(Style,pushbutton,String,In,.Position,20 20 60 20,Callback,if camva=179;return;else;camva(camva+1);end);camval函数camva()的调用格式是:返回当前坐标系设置的相机视角camva(a)将当前坐标系的相机视角设置为a,单位是度camzoom(f)l函数camzoom()的调用格式是:根据 f 的值对场景进行缩放。下面程序制作了两个按钮用来控制视角的改变。返回相机视角设置相机新的视角2021/3/26Matlab动画技术动画技术 ppt课件课件197.函数函数view()()view(

    17、az,el)和 view(az,el)该函数指定视点方向,其调用格式为:设置三维图的视角。方位角 az 为从 y 轴的负轴开始绕 z 轴水平旋转的角度。正值表示视点逆时针旋转。el 为仰角。az 与 el 的单位为度。view(2)设置为默认二维视图,az=0,el90view(3)设置为默认三维视图,az=-37.5,el30视角函数2021/3/26Matlab动画技术动画技术 ppt课件课件20X,Y=meshgrid(-10:0.5:10);Z=X.2/36-Y.2/25+sin(X+Y)*2;x=X(1,:);y=Y(:,1);i=find(y0.1&y-3.6&x%n=length

    18、(x);i=2;j=1;while 1 set(h,xdata,x(i),ydata,y(i),zdata,z(i);drawnow;pause(0.0005)i=i+1;if nargin=2&nargout=1 if(i=ki&j=1);f=getframe(gcf);end end if in i=1;j=j+1;if jK;break;end endend 2021/3/26Matlab动画技术动画技术 ppt课件课件34(2)f=anim_zzy1(2,450);(3)image(f.cdata),axis off红球沿下旋螺线运动的瞬间照片红球沿下旋螺线运动的瞬间照片既演示实时动画

    19、又拍摄照片观察拍摄的照片2021/3/26Matlab动画技术动画技术 ppt课件课件35二、动画制作原理二、动画制作原理 有时动画制作可以只凭借逐帧图像来完成,这些是基于图像的动画制作。三维动画主要是靠三维模型的变换实现的,这些变换包括平移、旋转、错切、比例变换,其它线性变换、非线性变换等。因时间关系,这些内容在此不做介绍。动画制作的基本原理是把一些图形或图像快速逐帧播放,在人眼与人脑中产生连续的刺激,形成了动画。2021/3/26Matlab动画技术动画技术 ppt课件课件36(一)基于图像的动画制作(一)基于图像的动画制作图像旋转图像旋转1.利用图像几何操作制作动画利用图像几何操作制作动

    20、画B=imread(D:112.bmp);for i=1:60 imrotate(B,i)end例例 制作图像旋转动画。这个程序把名称为112.bmp的图像旋转60度,出现动画效果。图像作为一种特殊的图形,有着很强的描述自然的能力。在有些动画制作过程中,要充分的利用图像这个载体。2021/3/26Matlab动画技术动画技术 ppt课件课件37距离变换距离变换例例 使用cityblock距离制作动画。程序运行结果是随着 i 增加,图形边数增加,产生了动画效果。B1=zeros(50,50,50);B1(25,25,25)=1;D2=bwdist(B1,cityblock);for i=1:10

    21、 isosurface(D2,i),axis equal,view(3),axis off pause(0.2)end2021/3/26Matlab动画技术动画技术 ppt课件课件38图像块移动图像块移动例例 利用图像块切割函数制作图像块移动动画。动画的效果是图像块在一个窗口中移动。A=imread(D:111.jpg);for i=1:20 A1=imcrop(A,i,i,i+20,i+30);imshow(A1)end例例 图像块逐渐放大制作出的动画效果。程序的运行结果使图像块逐渐扩大,形成动画。A=imread(D:111.jpg);for i=1:70 A1=imcrop(A,80-i

    22、,80-i,i+20,i+30);imshow(A1)end2021/3/26Matlab动画技术动画技术 ppt课件课件39图像颜色图像颜色2.基于图像颜色与亮度的动画制作基于图像颜色与亮度的动画制作I=imread(D:111.jpg);I1=I(:,:,2);s=size(I1);a=ones(s(1),s(2);I2=double(I1);for i=1:50 I2(:,:)=I2(:,:)-a*i;I(:,:,2)=I2(:,:);imshow(I)end例例 逐渐减少RGB图像的绿色成分,完成一个颜色渐变的动画。程序的运行结果是一个颜色渐变的动画。2021/3/26Matlab动画

    23、技术动画技术 ppt课件课件40I=imread(D:111.jpg);I1=I(:,:,2);s=size(I1);a=ones(s(1),s(2);I2=double(I1);for i=1:8 I2(:,:)=I2(:,:)-a*i*5;subplot(2,4,i)I(:,:,2)=I2(:,:);imshow(I)end为了把颜色渐变情况展示出来,下面程序绘制出一些中间帧。2021/3/26Matlab动画技术动画技术 ppt课件课件41I=imread(D:face001.jpg);I1=I(:,:,1);s=size(I1);a=ones(s(1),s(2);I2=double(I

    24、1);for i=1:50 I2(:,:)=I2(:,:)-a*i;I(:,:,1)=I2(:,:);imshow(I)end例例 逐渐减少一幅彩色(RGB图像)人脸照片的红色成分,完成一个颜色渐变的动画。程序中照片文件D:face001.jpg是以红色为背景的,经过渐变,红色背景逐渐消失。2021/3/26Matlab动画技术动画技术 ppt课件课件42图像亮度图像亮度I=imread(D:face001.jpg);I1=rgb2gray(I);s=size(I1);a=ones(s(1),s(2);I2=double(I1);for i=1:30 I2(:,:)=I2(:,:)-a*i;i

    25、mshow(I2)end例例 逐渐减少灰度图像的亮度,完成一个亮度渐变的动画。该程序完成了一个亮度渐变动画。2021/3/26Matlab动画技术动画技术 ppt课件课件43为了把亮度渐变情况记录下来,使用下面程序把一些中间帧绘制出来。I=imread(D:flower1.bmp);I1=rgb2gray(I);s=size(I1);a=ones(s(1),s(2);I2=double(I1);for i=8:22 I2(:,:)=I2(:,:)-a*i;subplot(3,5,i-7)imshow(I2)end2021/3/26Matlab动画技术动画技术 ppt课件课件44上述程序的运行结

    26、果如下图所示:右图为彩色图像D:flower1.bmp2021/3/26Matlab动画技术动画技术 ppt课件课件45图像膨胀与腐蚀的动画效果图像膨胀与腐蚀的动画效果3.图像处理与分析用于动画制作图像处理与分析用于动画制作例例 使用膨胀与腐蚀制作动画。程序的运行结果是演示图像逐渐被腐蚀与膨胀的过程。许多图像处理与分析的方法都可以用于图像动画制作,下面以图像膨胀与腐蚀以及图像的Radon变换为例简单介绍。A=imread(D:flower1.bmp);A1=rgb2gray(A);for i=1:6 se=strel(square,i);A2=imdilate(A1,se);A3=imerod

    27、e(A1,se);subplot(1,2,1),imshow(A2);subplot(1,2,2),imshow(A3);pause(0.2)end2021/3/26Matlab动画技术动画技术 ppt课件课件46图像变换图像变换例例 使用Radon变换制作动画。程序的演示结果是随着角度的增加,Radon 变换变化的结果。A=imread(D:111.jpg);A1=rgb2gray(A);for i=0:5:60 R,xp=radon(A,i)imagesc(i,xp,R);pause(0.2)end2021/3/26Matlab动画技术动画技术 ppt课件课件47(二)动画的分类制作方法(

    28、二)动画的分类制作方法l另外,从图形空间维数可以分为二维动画与三维动画。l从动画的表现上可以分为真实感动画与非真实感动画;一般从制作动画所用素材、制作方法、制作工具等多个角度对动画进行分类,也可以从观赏者是否干预、场景是否运动等对动画进行分类。l从动画制作所用素材可以分为图形动画与图像动画等;l从动画的制作方法可以分为逐帧动画、形变动画与路径动画;l从制作工具上可以分为语言制作动画与软件制作动画;l从观赏者是否参与可以分为普通动画与虚拟现实动画;2021/3/26Matlab动画技术动画技术 ppt课件课件48逐帧动画逐帧动画1.逐帧动画、形变动画与路径动画逐帧动画、形变动画与路径动画 可以使

    29、用Matlab中的函数moviein()与getframe等完成逐帧动画设计,使用函数movie()播放逐帧动画。逐帧动画、形变动画与路径动画是三种基本的动画制作方式,每个动画制作软件都提供这三种动画制作方法。这里研究如何使用Matlab语言实现这三种动画。一方面,在以后的实际应用中,可以直接使用语言进行动画设计;另一方面,可以探索动画制作软件的开发机理,以便更好的使用动画制作软件。2021/3/26Matlab动画技术动画技术 ppt课件课件49 在前面介绍的动画制作方法中,电影动画制作中有一段程序,程序完成了一个简单的逐帧动画。该程序段就是使用了moviein()、()、getframe与

    30、movie()()这几个函数,完成了一个从多面体转化成球体的动画。其实,这几个函数是通用的逐帧动画制作函数,利用这几个函数,可以制作出各种各样的逐帧动画。M=moviein(16);for j=1:16 sphere(j);axis equal M(:,j)=getframe;endmovie(M,10)2021/3/26Matlab动画技术动画技术 ppt课件课件50for i=1:15 k=int2str(i);k1=strcat(D:picture,k,.jpg);a1=imread(k1);image(a1);m(:,i)=getframe;endmovie(m,2)例例 修改前述的动

    31、画制作程序,完成编号图像动画制作。一共15张墙纸图片,存储在D:picture文件夹下。从上例可以看到,只要把图像编号,就可以制作出逐帧动画,也就是可以完成序列图像播放。目前,有些动画作品就是先手工绘制,然后扫入计算机,进行动画编辑与制作。制作的方法与上例类似。软件制作逐帧动画与语言制作逐帧动画本质上是相同的。软件Flash与3D MAX等都提供了逐帧动画制作功能,其方法也是把每一帧图像或图形存入播放数组,然后进行逐帧播放。2021/3/26Matlab动画技术动画技术 ppt课件课件51形变动画形变动画 动画制作软件都提供了形变动画制作功能。首先给定一个物体的初始形状,然后给定终止形状,中间

    32、过程的各个帧使用插值计算来实现。插值计算的关键是找好初始与终结两个时刻的对应顶点(关键点),然后计算中间各帧的顶点(关键点),最后,使用类似 surf 的函数绘制每一帧。一般的形变动画都是靠计算给出中间帧,这虽然增加了计算时间,但是不需要存储大量的中间图像(图形),节省了存储空间。2021/3/26Matlab动画技术动画技术 ppt课件课件52例例 作动画演示peaks图形逐渐趋近于平面的过程。p=peaks(11);h=axes(Position,0,0,1,1,visible,off)for i=1:10 p1=p/i;surf(p1)set(h,Zlim,0 10)axis off;p

    33、ause(0.3)end程序运行时,随着i的增加,曲面的高度逐渐缩小,形成了动画效果。为了更好的观察,设置固定了坐标系的Z轴范围为0 10。2021/3/26Matlab动画技术动画技术 ppt课件课件53例例 作动画演示一个图形逐渐演化成peaks图形的过程。p=peaks(16);s=sphere(15);for i=30:-2:1 p1=s+p/i;surf(p1);axis off;pause(0.1);end程序中,先使用peaks函数产生图形数据,再使用sphere函数产生数据,然后对这些数据进行组合,实现从一个图形到peaks图形的转变。下图是一些中间帧。2021/3/26Mat

    34、lab动画技术动画技术 ppt课件课件54注:注:sphere函数产生数据后,使用surf函数对这些数据进行绘制不能产生球体。而是类似于上图中的第一个图形。X1,Y1,Z1=peaks(16);X2,Y2,Z2=sphere(15);for i=1:5:100 Z3=Z1/i+Z2;surf(X2,Y2,Z3)axis square off pause(0.1)end 如果演示从 sphere 曲面变成一个球体,可以使用下面程序。2021/3/26Matlab动画技术动画技术 ppt课件课件55路径动画路径动画 路径动画制作方法也是动画制作软件常用的一个方法。首先为动画设定一个路径,路径可以是

    35、规则的几何曲线,也可以是手工绘制的曲线;然后先把物体放到始点位置,再放到终点位置,确认后,让物体沿曲线运动。三维物体路径动画制作过程中,需要处理好消隐问题。根据使用的具体语言或软件来处理消隐问题,Matlab语言函数可以自动实现消隐,三维软件也都可以自动处理消隐问题;但是象C 语言、VB等就没有提供这方面的功能。使用Matlab可以很容易地实现路径动画。2021/3/26Matlab动画技术动画技术 ppt课件课件56例例 作一个球体沿一段正弦曲线运动。x=0:0.1:1;y=sin(x);h=axes(Position,0,0,0.1,0.1)for i=1:10 set(h,Positio

    36、n,x(i),y(i),0.1,0.1)sphere(15);axis off pause(0.1)end 因为程序中的正弦曲线是自变量取 01 之间的一段,所以,看上去像是沿直线运动。程序关键是每次重新设置绘图坐标轴的起始位置。2021/3/26Matlab动画技术动画技术 ppt课件课件57例例 作一个球体沿正弦曲线运动一个周期。修改前一页中的程序如下:该程序能够实现一个球体沿正弦曲线运动一个周期。如下图所示。x=0:0.1:2*pi;y=sin(x);h=axes(Position,0,0,0.1,0.1)for i=1:62 set(h,Position,x(i)/(2*pi),y(i

    37、)/(2*pi)+0.5,0.1,0.1)sphere(15);axis off;pause(0.1);end2021/3/26Matlab动画技术动画技术 ppt课件课件58图中的曲线是使用语句后加入的。2021/3/26Matlab动画技术动画技术 ppt课件课件59例例 作一个球体沿随机曲线运动。下例演示的是一个球体沿随机曲线运动的动画。y=rand(1,30);axis offh1=axes(Position,0,0,1,1)plot(y)axis offh=axes(Position,0,0,0.1,0.1)for i=1:30 set(h,Position,i/30,y(i),0.

    38、1,0.1)sphere(15);axis square off pause(0.1)end2021/3/26Matlab动画技术动画技术 ppt课件课件60上述程序的运行结果如下图所示。一个球体沿着随机曲线运动2021/3/26Matlab动画技术动画技术 ppt课件课件61例例 作一个球体沿空间中一条曲线运动。从上面几个例子可以看出,只要给出路线,就可以沿着路线绘制物体,形成路径动画。X1,Y1,Z1=sphere(15);x=1:0.1:pi;y=sin(x)*10;z=cos(x)*10;for i=1:31 X2=X1+x(i)*10;Y2=Y1+y(i)*10;Z2=Z1+z(i)

    39、;surf(X2,Y2,Z2)axis square off pause(0.1)end 上面例题是一个三维物体绕一个平面曲线运动,下面例子实现了一个球体沿着一条空间曲线运动。程序使用了球体的三维数据,每次把球体的三维数据增加一定的数值,再重新绘制,形成了沿曲线运动的效果。2021/3/26Matlab动画技术动画技术 ppt课件课件622.使用语言与软件制作动画使用语言与软件制作动画使用语言制作动画使用语言制作动画 从使用工具上分,可以把动画制作分为使用语言制作与使用软件制作两类。下面再举一例体会一下语言制作动画的方法。X,Y,Z=peaks(50);surfl(X,Y,Z)axis(-3

    40、3-3 3-10 10)axis vis3d offshading interpcolormap(copper)for i=1:15 view(-37.5+15*(i-1),30)m(i)=getframe;endclsmovie(m)surfl(X,Y,Z)是绘制曲面时使用灯光效果。axis vis3d off 把坐标轴设置为三维状态,并且不显示坐标轴,cls是擦除图形窗口内容。注:注:Matlab语言与其它语言不同,Matlab提供了更多的动画制作函数,例如view、getframe、movie等。2021/3/26Matlab动画技术动画技术 ppt课件课件63使用软件制作动画使用软件制作动画 目前,常用的二维动画制作软件有Flash、Animator Studio、COOL 3D、Firework等;常用的三维动画制作软件有3DS Max、Softimage 3D、Maya、Lightwave3D等。动画制作软件提供了可视化工具与集成模块,使动画制作更加方便,不过,使用语言制作动画,能够更加细腻逼真。另外,不同的语言或软件都有自己的特点,根据具体要求,选择动画制作工具。其实,使用语言制作动画与使用软件制作动画本质上是相同的,另外,为了更好地完成动画制作,有时软件与语言结合在一起使用。Flash 软件与3D Max软件都有脚本语言,来完成更加复杂的设计任务。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Matlab动画技术课件.ppt
    链接地址:https://www.163wenku.com/p-4376774.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库