Matlab实验8_立体图形与动画

上传人:ZJ****2 文档编号:43034635 上传时间:2018-06-04 格式:DOC 页数:9 大小:541.50KB
返回 下载 相关 举报
Matlab实验8_立体图形与动画_第1页
第1页 / 共9页
Matlab实验8_立体图形与动画_第2页
第2页 / 共9页
Matlab实验8_立体图形与动画_第3页
第3页 / 共9页
Matlab实验8_立体图形与动画_第4页
第4页 / 共9页
Matlab实验8_立体图形与动画_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Matlab实验8_立体图形与动画》由会员分享,可在线阅读,更多相关《Matlab实验8_立体图形与动画(9页珍藏版)》请在金锄头文库上搜索。

1、数学实验八问题一: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)=

2、1-cos(a(i);plot(x0,y0,*); % hold on 保持当前图形窗口% axis设置坐标轴的最小最大值 % 用法:axis(xmin,xmax,ymin,ymax)% axis equal:纵、横坐标轴采用等长刻度M(i)=getframe;end fprintf(播放电影中.n);movie(M,3);2、 此题和上题类似。当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变 化丰富的摆线。假设小圆轮的半径 r=2。 3、 当小圆轮绕着一个大圆(半径 R=5)的外部滚动时,请画出其摆线。 a=linspace(0,2*pi,100); x0=0,0;y0=0,5;f

3、printf(抓取画面中.n); for i=1:100plot(5*cos(a),5*sin(a),r);axis equalhold onx=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 onplot(x0,y0,b,6*sin(a(i),6*cos(a(i),r);hold offaxis equalaxis(-8,8,-8,8);m(i)=getframe; end fprint

4、f(播放电影中.n); movie(m);4、 重复上小题,但改成在大圆的内部滚动。a=linspace(0,2*pi,100); x0=0,0;y0=0,5;fprintf(抓取画面中.n); for i=1:100plot(5*cos(a),5*sin(a),r);axis equalhold onx=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 onplot(x0,y0,b,4*si

5、n(a(i),4*cos(a(i),r);hold offaxis equalaxis(-6,6,-6,6);m(i)=getframe; end fprintf(播放电影中.n); movie(m);问题二1.假设某校信息系在 2001、2002 及 2003 年的人员组成如下表所示: 类别 大一 大二 大三 大四 硕一 硕二 博士班 教职员 -8-6-4-202468-8-6-4-202468-6-4-20246-6-4-202462001 10 21 23 14 35 2 64 7 4 8 2002 21 32 33 24 35 26 1 7 4 8 年份 2003 15 23 23 4

6、4 25 34 2 7 3 8 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 38 bar3(x); set(gca,xticklabel,大一,大二,大三,大四,硕一,硕二,博士班,教职 员); set(gca,yticklabel,2001年,2002年,2003年);2. 请使用上题的数据来进行下列两小题: a.画出依每年份总人数来切分的立体扇形图,并加上各种可能的说明文字

7、。 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=大一,大二,

8、大三,大四,硕一,硕二,博士班,教职员;explode=1,0,1,0,1,0,1,0; pie3(x,explode,label); title(2001-2003学校各年级人数); axis on问题三一个空间中的椭球可以表示成下列方程式: 请使用任何你可以想到的1222222 cz by ax方法(比如说:加密网格线,加上光照,插值,明暗处理等等),画出三维空间中的一个 光滑的椭球,其中 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(椭球

9、);xlabel(X),ylabel(Y),zlabel(Z);shading interp;lighting flat;material shiny;axis equal;问题四1、 请用 surf 指令来画出下列函数的曲面图:,其中 x 在 -2, 2 间共等切22yxxez分为 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,2

10、1);x,y=meshgrid(x,y);z=x.*exp(-x.*x-y.*y);surf(x,y,z);axis equal title(三维 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);%以曲面的梯度

11、来设定颜色axis equal title(三维 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 equal title(三维 surf 网格图);xlabel(X-轴),ylabel

12、(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);%曲面的网

13、格线除去,并设置为透明的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-轴)

14、;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:21surf(a(i)*z);title(peaks曲面乘上a=-1:2/20:1);m(i)=getframe;end fprintf(播放电影中.n);movie(m,3);2.以对象方式产生动画,呈现一个小圆(

15、半径 为 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:100set(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)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号