数学实验八
问题一:
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;
end
fprintf('播放电影中...\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;
end
fprintf('播放电影中...\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;
end
fprintf('播放电影中...\n');
movie(m);
问题二
1. 假设某校信息系在2001、2002及2003年的人员组成如下表所示:
类别 | |||||||||
大一 | 大二 | 大三 | 大四 | 硕一 | 硕二 | 博士班 | 教职员 | ||
年份 | 2001 | 10 | 21 | 23 | 14 | 35 | 26 | 47 | 48 |
2002 | 21 | 杜淳电视剧32 | 33 | 24 | 35 | 26 | 17 | 48 | |
2003 | 15 | 23 | 23 | 44 | 25 | 34 | 27 | 38 | |
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年'});
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 on
b、 林宥嘉 邓紫棋重复上小题,但改成依每种类别的总人数来切分。
%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;
问题四
b. 请用预设的颜对应表(Colormap)来画出此曲面。
%homework_8_4.m
x=-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 equal
title('三维 surf 关于山的诗网格图');
xlabel('X-轴'),ylabel('Y-轴'),zlabel('Z-轴');
grid on;
c. 请以曲面的斜率来设定曲面的颜。
%homework_8_4_d.m
x=-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 equal
title('三维 surf 网格图');
xlabel('X-轴'),ylabel('Y-轴'),zlabel('Z-轴');
grid on;
d. 请以曲面的曲率来设定曲面的颜。
%homework_8_4_e.m
x=-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('Y-轴'),zlabel('Z-轴');
grid on;
e. 请将曲面的网格线除去,并设置为透明的。
%homework_8_4_f.m
x=-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.m
x=-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\任亲虎4260\homework_8_4_g_mei.jpg');
warp(x,y,z,c);
title('读取图像');
xlabel('X-轴'),ylabel('Y-轴'),zlabel('Z-轴');
grid off;%曲面的网格线除去
axis equal;
发布评论