数学实验八
问题一:
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. 假设某校信息系在200120022003年的人员组成如下表所示:
类别
大一
大二
大三
大四
硕一
硕二
博士班
教职员
年份
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
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. 画出依每年份总人数来切分的立体扇形图,并加上各种可能的说明文字。
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;
问题四
1、 请用 surf 指令来画出下列函数的曲面图:,其中 x 在 [-2, 2] 间共等切分为 21 点,y 在 [-1, 1] 间共等切分为 21 点,所以此曲面共有 21*21=441 个点。
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;