三维图
一、三维线性图
三维线性图的书写格式为:
式中,X,Y,Z为同维的向量或矩阵。
例5-28
已知空间螺旋线方程式为
设置t=0:pi/50:10*pi,求三维线形图。
>> t=0:pi/50:10*pi;
>> x=0.1*exp(t/20).*cos(2*t);
>> y=0.1*exp(t/20).*sin(2*t);
>> plot3(x,y,t),grid on
>> title('发散螺旋线')
二、三维条形图
书写格式为
例5-29
>> year=[1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001];
>> GDP=[17.4 19.58 23.94 31.38 43.8 57.73 67.79 74.77 79.55 82.05 89.4 95.93];
>> consu=[3.1 3.4 10.7 19.6 24.8 16.5 8.3 2.8 -0.8 -1.4 0.4 0.7];
>> colormap(spring) %设置色彩
>> bar3(year,GDP,0.3)
>> figure %创建另一图形窗口
>> colormap([0 1 1])
>> bar3(year,consu,0.3)
三、三维散点图
例5-30
利用三维散点图,绘制模拟的喷泉。
解:
为模拟喷泉,在M文件编辑器编制程序如下,程序名为fountain_prog.m,图形名为fountain.fig
for n=0:0.5:15 %设置喷泉层次
r=5+5*n; %设置喷泉的内、外径
theta=0:pi/12:2*pi; %设置喷嘴数,计25个
x=r*cos(theta);
y=r*sin(theta);
z=50*ones(size(x))*n-2*n.^2;
c(1)=0;c(2)=0;c(3)=0; %设置颜色为黑色
scatter3(x,y,z,3,c,'filled')
hold on
end
axis([-80,80,-80,80,0,320])
四、三维网格图
例5-31
已知三维方程式z=exp(-x2-y2)sin2x,求三维网格图。
>> [X,Y]=meshgrid(-3:0.2:3); %设置矩阵网络
>> Z=exp(-X.^2-Y.^2).*sin(X).^2; %计算矩阵Z
>> mesh(X,Y,Z) %绘制网格图
>> title('Z=exp(-X.^2-Y.^2).*sin(X).^2,的网格图');
>> xlabel('X');
>> ylabel('Y');
>> zlabel('Z');
>> axis([-3,3,-3,3,0,0.3])
>> max(max(Z))
ans =
0.2713
例5-32
已知三维方程式 z=exp(-x2-y2)sinx,求三维网格图,并带有等高轮廓线。
>> [X,Y]=meshgrid(-3:0.2:3);
>> Z=exp(-X.^2-Y.^2).*sin(X);
>> meshc(X,Y,Z)
>> axis([-3,3,-3,3,-0.4,0.4])
>> title('Z=exp(-X.^2-Y.^2).*sin(X),的网格图');
>> xlabel('X');
ylabel('Y');
zlabel('Z');
>> max(max(Z))
ans =
0.3939
五、三维表面图
书写格式为:
>> A=pascal(9);
>> surf(A)
>> title('pascal(9)');
>> xlabel('X');
>> ylabel('Y');
>> zlabel('Z');
例5-34
已知B为9阶魔方矩阵,求B矩阵的表面图。
>> B=magic(9);
>> surf(B)
>> title('magic(9)的表面图')
>> xlabel('X')
>> ylabel('Y')
>> zlabel('Z')
例5-35
已知三维函数Z=exp[-(0.15X)2-(0.15Y)2]sinXsinY,求表面图并带有等高线。
>> [X,Y]=meshgrid(0:0.25:10);
>> Z=exp(-(0.15*X).^2-(0.15*Y).^2).*sin(X).*sin(Y);
>> surfc(X,Y,Z)
>> title('Z=exp(-(0.15*X).^2-(0.15*Y).^2).*sin(X).*sin(Y)的等高线图')
>> xlabel('X')
>> ylabel('Y')
>> zlabel('Z')
六、简易表面图
例5-36
已知方程式为z=xexp(-x2-y2),求该函数的三维表面图,坐标范围为[-3,3]。
>> ezsurf('x*exp(-x^2-y^2)',[-3,3],[-3,3]);grid on %引号内为函数表达式,方括号内为自变量取值区间
例5-37
(抛物面)已知三维函数x=rcos(theta),y=rsin(theta),z=r2,求该函数的简易表面图。
>> syms r theta
>> x=r*cos(theta);
>> y=r*sin(theta);
>> z=r^2;
>> ezsurf(x,y,z)
七、柱形立体图
例5-38
用三维柱形图,绘制灯笼。
>> zeta=-pi/2:pi/12:pi/2;
>> r=0.5+cos(zeta);
>> r=[0.5,r,0.5];
>> [x,y,z]=cylinder(r,12);
>> surf(x,y,z),grid on
例5-39
用三维柱形图绘制漏斗。
>> theta=-pi/2:pi/12:0;
>> v=1+3*cos(theta);
>> v1=0.5:0.1:1;
>> V=[v1,v];
>> [x,y,z]=cylinder(V,120);
>> surf(x,y,z),grid on
>> title('漏斗')
>> xlabel('X')
>> ylabel('Y')
>> zlabel('Z')