Matlab实验8 立体图形与动画.doc_第1页
Matlab实验8 立体图形与动画.doc_第2页
Matlab实验8 立体图形与动画.doc_第3页
Matlab实验8 立体图形与动画.doc_第4页
Matlab实验8 立体图形与动画.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

数学实验八问题一:1、 当一个小圆轮在平面上滚动时,轮缘的一点在滚动时所形成的轨迹称为摆线。请用 MATLAB 画出一个典型的摆线,其中小圆轮的半径为 1,而且至少要滚三圈。 %homework_8_1_1_2.m hold on;clear M; a=linspace(0,6*pi,100);t=linspace(0,2*pi,100); n=100;x0=0,0;y0=0,0;axis equal;axis(0,20,0,pi);fprintf(抓取画面中.n);for i=1:n %x=a(i)+cos(t); %y=1+sin(t); x0(i)=a(i)-sin(a(i); y0(i)=1-cos(a(i); plot(x0,y0,*); M(i)=getframe;endfprintf(播放电影中.n);movie(M,3);2、 此题和上题类似。当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变化丰富的摆线。假设小圆轮的半径 r=2。 3、 当小圆轮绕着一个大圆(半径 R=5)的外部滚动时,请画出其摆线。 a=linspace(0,2*pi,100);x0=0,0;y0=0,5;fprintf(抓取画面中.n);for i=1:100 plot(5*cos(a),5*sin(a),r);axis equal hold on x=6*sin(a(i)+cos(a); y=6*cos(a(i)+sin(a); x0(i)=6*sin(a(i)-sin(6*a(i);y0(i)=6*cos(a(i)-cos(6*a(i); plot(x,y,r,x0(i),y0(i),b*); hold on plot(x0,y0,b,6*sin(a(i),6*cos(a(i),r); hold off axis equal axis(-8,8,-8,8); m(i)=getframe;endfprintf(播放电影中.n);movie(m);4、 重复上小题,但改成在大圆的内部滚动。a=linspace(0,2*pi,100);x0=0,0;y0=0,5;fprintf(抓取画面中.n);for i=1:100 plot(5*cos(a),5*sin(a),r);axis equal hold on x=4*sin(a(i)+cos(a); y=4*cos(a(i)+sin(a); x0(i)=4*sin(a(i)-sin(4*a(i);y0(i)=4*cos(a(i)+cos(4*a(i); plot(x,y,r,x0(i),y0(i),bo); hold on plot(x0,y0,b,4*sin(a(i),4*cos(a(i),r); hold off axis equal axis(-6,6,-6,6); m(i)=getframe;endfprintf(播放电影中.n);movie(m);问题二1. 假设某校信息系在2001、2002及2003年的人员组成如下表所示: 类别 大一 大二 大三 大四 硕一 硕二 博士班 教职员 年份 2001 10 21 23 14 35 2647 48 2002 21 32 33 24 35 26 17 48 2003 15 23 23 44 25 34 27 38 a. 请用 bar3 指令来画出上述数据的立体长条图。b. 请用各种你可以想到的方法,在上述图形中加入各种解释和说明的文字。x=10 21 23 14 35 26 47 48;21 32 33 24 35 26 17 48;15 23 23 44 25 34 27 38bar3(x);set(gca,xticklabel,大一,大二,大三,大四,硕一,硕二,博士班,教职员);set(gca,yticklabel,2001年,2002年,2003年);2. 请使用上题的数据来进行下列两小题: a. 画出依每年份总人数来切分的立体扇形图,并加上各种可能的说明文字。 x=10+21+23+14+35+26+4+48;21+32+33+24+35+26+17+48;15+23+23+44+25+34+27+38;label=2001年,2002年,2003年;explode=1,0,0;pie3(x,explode,label);title(2001-2003各年学校人数);axis onb、 重复上小题,但改成依每种类别的总人数来切分。 %homework_8_2_2_b.m x=10+21+15;21+32+23;23+33+23;14+24+44;35+35+25;26+26+34;47+17+27;48+48+38;label=大一,大二,大三,大四,硕一,硕二,博士班,教职员;explode=1,0,1,0,1,0,1,0;pie3(x,explode,label);title(2001-2003学校各年级人数); axis on问题三一个空间中的椭球可以表示成下列方程式: 请使用任何你可以想到的方法(比如说:加密网格线,加上光照,插值,明暗处理等等),画出三维空间中的一个光滑的椭球,其中 a = 3,b = 4,c = 8。 %homework_8_3_1.m x0,y0,z0=sphere(30);x=3*x0; y=4*y0; z=5*z0;surf(x,y,z); title(椭球);xlabel(X),ylabel(Y),zlabel(Z);shading interp;lighting flat;material shiny;axis equal;问题四1、 请用 surf 指令来画出下列函数的曲面图:,其中 x 在 -2, 2 间共等切分为 21 点,y 在 -1, 1 间共等切分为 21 点,所以此曲面共有 21*21=441 个点。 b. 请用预设的颜色对应表(Colormap)来画出此曲面。 %homework_8_4.mx=-2:4/20:2;%x=linspace(-2,2,21);y=-1:2/20:1;%y=linspace(-1,1,21);x,y=meshgrid(x,y);z=x.*exp(-x.*x-y.*y);surf(x,y,z);axis equaltitle(三维 surf 网格图);xlabel(X-轴),ylabel(Y-轴),zlabel(Z-轴);grid on;c. 请以曲面的斜率来设定曲面的颜色。 %homework_8_4_d.mx=-2:4/20:2;%x=linspace(-2,2,21);y=-1:2/20:1;%y=linspace(-1,1,21);x,y=meshgrid(x,y);z=x.*exp(-x.*x-y.*y);surf(x,y,z,gradient(z);%以曲面的梯度来设定颜色axis equaltitle(三维 surf 网格图);xlabel(X-轴),ylabel(Y-轴),zlabel(Z-轴);grid on;d. 请以曲面的曲率来设定曲面的颜色。 %homework_8_4_e.mx=-2:4/20:2;%x=linspace(-2,2,21);y=-1:2/20:1;%y=linspace(-1,1,21);x,y=meshgrid(x,y);z=x.*exp(-x.*x-y.*y);surf(x,y,z,del2(z);%以曲面的曲率来设定颜色axis equaltitle(三维 surf 网格图);xlabel(X-轴),ylabel(Y-轴),zlabel(Z-轴);grid on;e. 请将曲面的网格线除去,并设置为透明的。%homework_8_4_f.mx=-2:4/20:2;%x=linspace(-2,2,21);y=-1:2/20:1;%y=linspace(-1,1,21);x,y=meshgrid(x,y);z=x.*exp(-x.*x-y.*y);surf(x,y,z,del2(z);%以曲面的曲率来设定颜色title(三维 surf 网格图);xlabel(X-轴),ylabel(Y-轴),zlabel(Z-轴);axis equal;%grid on;grid off;alpha(0);%曲面的网格线除去,并设置为透明的f. 任意读入一幅图像,然后将其贴到该曲面上去。%homework_8_4_g.mx=-2:4/20:2;%x=linspace(-2,2,21);y=-1:2/20:1;%y=linspace(-1,1,21);x,y=meshgrid(x,y);z=x.*exp(-x.*x-y.*y);%surf(x,y,z,del2(z);%以曲面的曲率来设定颜色c=imread(H:Matlab任亲虎4260homework_8_4_g_mei.jpg);warp(x,y,z,c);title(读取图像);xlabel(X-轴),ylabel(Y-轴),zlabel(Z-轴);grid off;%曲面的网格线除去axis equal;axis off;问题五:1. 以电影方式产生包含 21 个画面的动画,代表 peaks 曲面乘上 a,其中 a 的值由 -1 至 1 等分切成 21 点。 %homework_8_5_1.ma=-1:2/20:1;%a=linspace(-1,1,21);fprintf(抓起画面中.n);z=peaks;for i=1:21 surf(a(i)*z); title(peaks曲面乘上a=-1:2/20:1); m(i)=getframe;endfprintf(播放电影中.n);movie(m,3);2. 以对象方式产生动画,呈现一个小圆(半径为 1)在一个大圆(半径为 3)的圆周外部滚动的动画。(注:若以极坐标(复数)来进行数据处理,程序代码会比较简单一些)%homework_8_5_2.mt=0:2*pi/100:2*pi;%t=linspace(0,2*pi,100);x=4*cos(t)-cos(4*t);y=4*sin(t)-sin(4*t);plot(3*cos(t),3*sin(t),k);axis(-6,6,-6,6);axis equalhold onh1=plot(4*cos(t(i)+cos(t),4*sin(t(i)+sin(t),r,erasemode,xor);h2=plot(x(i),y(i),b,erasemode,xor);for i=1:100 set(h1,xdata,4*cos(t(i)+cos(t),ydata,4*sin(t(i)+sin(t); set(h2,xdata,x(i),ydata,y(i); plot(x(1:i),y(1:i),b); axis(-6,6,-6,6); pause(0.1);end3. 以对象方式产生动画,呈现一个小圆(半径为 1)在一个大圆(半径为 3)的圆周内部滚动的动画。%homework_8_5_3.mt=0:2*pi/100:2*pi;%t=linspace(0,2*pi,100);x=2*cos(t)+cos(2*t);y=2*sin(t)-sin(2*t);plot(3*cos(t),3*sin(t),k);axis(-4,4,-4,4);axis equalhold onh1=plot(2*cos(t(i)+cos(t),2*sin(t(i)+sin(t),r,erasemode,xor);h2=plot(x(i),y(i),bo,erasemode,xor);for i=1:100 set(h1,xdata,2*cos(t(i)+cos(t),ydata,2*sin(t(i)+sin(t); set(h2,xdata,x(i),ydata,y(i); plot(x(1:i),y(1:i),b); axis(-4,4,-4,4); pause(0.1);end4. 以对象方式产生动画,呈现一个小圆(半径为 1)在一个中圆(半径为 3)的圆周内部滚动,且此中圆又在一个大圆(半径为 5)的圆周内部滚动的动画。%homework_8_5_4.mt=0:2*pi/500:2*pi;%t=linspace(0,2*pi,500);x=2*cos(t)+2*cos(7*t)+cos(25*t);y=2*sin(t)+2*sin(7*t)+sin(25*t);plot(5*cos(t),5*sin(t),k);axis(-6,6,-6,6);axis equalhold onh1=plot(2*cos(t(1)+3*cos(t),2*sin(t(1)+3*sin(t),r,erasemode,xor);h2=plot(2*cos(t(1)+2*cos(7*t(1)+cos(t),2*sin(t(1)+2*sin(7*t(1)+sin(t),r,erasemode,xor);h3=plot(x(1),y(1),bo,erasemode,xor);for i=1:500 set(h1,xdata,2*cos(t(i)+3*cos(t),ydata,2*sin(t(i)+3*sin(t); set(h2,xdata,2*cos(t(i)+2*cos(7*t(i)+cos(t),ydata,2*sin(t(i)+2*sin(7*t(i)+sin(t); set(h3,xdata,x(i),ydata,y(i); plot(x(1:i),y(1:i),b); axis(-6,6,-6,6); pause(0.01);end5. 以对象方式产生动画,呈现一个圆圈(半径为 1)由画面左边滚到右边,圆周上的任一

温馨提示

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

最新文档

评论

0/150

提交评论