柱面:圆柱面;椭圆柱面;双曲柱面;抛物柱面
锥面:圆锥面;椭圆锥面
锥球面;球面
椭圆抛物面;
单叶双曲面;双叶双曲面
双曲抛物面;
旋转抛物面,由
绕着z轴旋转得到。
mesh()为三维网格图绘制函数,格式为: mesh(x,y,z)。另外还有meshc:用来绘制等值线网格图,meshz:用来绘制包含0平面的网格图。
或者直接 ezsurfc('(X.^2+Y.^2)./4');
[X,Y]=meshgrid(-10:0.1:10);
Z=(X.^2+Y.^2)./4;
meshc(X,Y,Z);%%
ezsurfc('(X.^2+Y.^2)./4');
z 开根号得到锥面
a=3;b=2;
x=-5:0.01:5;y=-5:0.01:5;[X,Y]=meshgrid(x,y);
Z=sqrt(X.^2/a^2+Y.^2/b^2);
figure
surf(X,Y,Z); % 正半轴
hold on
surf(X,Y,-Z); % 负半轴
zlim([-1,1]);shading interp;%好看了
椭圆抛物面
,
,
ezsurfc('X.^2./9+Y.^2./4');
双曲抛物面(马鞍面)
,
,
[X,Y]=meshgrid(-10:0.1:10);
Z=X.^2./4-Y.^2./6;
meshc(X,Y,Z);title('双曲抛物面');
axis equal
%%
ezsurfc('X.^2./4-Y.^2./6')
椭圆柱面
ezsurf('(2*cos(u))','4*sin(u)','v',[0,2*pi,0,2*pi])
grid on
axis equal
双曲柱面
ezsurf('2*sec(u)','2*tan(u)','v',[-pi/2,pi/2,-3*pi,3*pi])
hold on
ezsurf('2*sec(u)','2*tan(u)','v',[pi/2,3*pi/2,-3*pi,3*pi])
axis equal
view(-15,30)
抛物柱面
[X,Y]=meshgrid(-7:0.1:7);
Z=Y.^2./8;mesh(Z);
双叶双曲面
ezsurf('2*tan(u)*cos(v)','2.*tan(u)*sin(v)','2.*sec(u)',[-pi./2,3*pi./2,0,2*pi])
axis equal%%
a=1;b=1;c=1;
phi=0:0.1:2*pi+0.1;
theta=(0:0.1:2)';
x=a*sinh(theta)*cos(phi);
y=b*sinh(theta)*sin(phi);
z=c*cosh(theta)*ones(size(phi));
surf(x,y,z);hold on;surf(x,y,-z);
title('双叶双曲面');
单叶双曲面
ezsurf('4*sec(u)*cos(v)','2.*sec(u)*sin(v)','3.*tan(u)',[-pi./2,pi./2,0,2*pi])
axis equal;grid on;
xlabel('x轴');ylabel('y轴');zlabel('z轴');
shading flat; %去掉网格线%%
a=1;b=2;c=1;
phi=0:0.1:2*pi+0.1;
theta=(-1:0.1:1)';
x=a*cosh(theta)*cos(phi);
y=b*cosh(theta)*sin(phi);
z=c*sinh(theta)*ones(size(phi));
figure
surf(x,y,z);title('单叶双曲面')
球
[x,y,z]=sphere(20);%球
mesh(x,y,z)
椭球面 的参数方程表示,surf(X,Y,Z) 创建一个三维曲面图
t=-pi:0.1*pi:pi;
s=-pi:0.1*pi:pi;
[u,v]=meshgrid(t,s);
x=2*sin(u).*cos(v) +1;
y=3*sin(u).*sin(v) +2;
z=cos(u);
surf(x,y,z)
附加:等高线和带状图
二维等高线图:contour(),三维等高线图:contour3(),带状图:ribbon(x,y)。
[x,y,z]=peaks(20);
m=peaks(20);
subplot(131);contour(x,y,z,20)
subplot(132);contour3(x,y,z,20)
subplot(133);ribbon(m)