一、三维曲线
plot3函数
plot3函数的基本用法 plot3(x, y, z) 其中,参数x、y、z组成一组曲线的坐标。
样例一:绘制一条空间折线。
x=[0.2, 1.5, 2.5];
y=[1.3, 2.8, 1.1];
z=[0.4, 1.2, 1.6];
plot3(x, y, z)
xlabel('Variable X'); ylabel('Variable Y'); zlabel('Variable Z')
grid on
axis([0, 3, 1, 3, 0, 2]);
样例二:绘制螺旋线
t=linspace(0, 10*pi, 200);
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t; subplot(1, 2, 1)
plot3(x, y, z)
grid on
subplot(1, 2, 2)
plot3(x(1:5:200), y(1:5:200), z(1:5:200))
grid on
fplot3函数
fplot3(funx, funy, funz, tlims)
其中,funx、funy、funz代表定义曲线x、y、z坐标的函数,通 常采用函数句柄的形式。tlims为参数函数自变量的取值范围,用二 元向量[tmin, tmax]描述,默认为[-5, 5]。
样例三:绘制墨西哥帽顶曲线
xt = @(t) exp(-t/10).*sin(5*t);
yt = @(t) exp(-t/10).*cos(5*t);
zt = @(t) t;
fplot3(xt, yt, zt, [-16, 16])
二、三维曲面
mesh函数和surf函数的调用格式: mesh(x, y, z, c) surf(x, y, z, c) 其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于 指定在不同高度下的曲面颜色。c省略时,颜色的设定正比于图形 的高度。
样例四:绘制三维曲面图
t = -2:0.1:2;
[X, Y] = meshgrid(t);
Z = X .* exp(-X.^2 - Y.^2);
subplot(1,3,1)
mesh(X,Y,Z);
subplot(1,3,2)
surf(X,Y,Z);
subplot(1,3,3)
plot3(X,Y,Z);
grid on
带等高线的三维网格曲面函数meshc
带底座的三维网格曲面函数meshz
具有等高线的曲面函数surfc
具有光照效果的曲面函数surfl
样例五: 用4种方式绘制函数? = (? − 1)2+(? − 2)2−1的曲面图。 其中,x∈[0,2],y∈[1,3]。
[x,y]=meshgrid(0:0.2:2,1:0.2:3);
z=(x-1).^2+(y-2).^2-1;
subplot(2,2,1);
meshc(x,y,z);
title('meshc(x,y,z)')
subplot(2,2,2);
meshz(x,y,z);title('meshz(x,y,z)')
subplot(2,2,3);
surfc(x,y,z);title('surfc(x,y,z)')
subplot(2,2,4);
surfl(x,y,z); title('surfl(x,y,z)')
(1)sphere函数 [x,y,z]=sphere(n) 产生3个(n+1)阶的方阵,采用这3个矩阵可以绘制出圆心位于 原点、半径为1的单位球体。 (2)cylinder函数 [x,y,z]=cylinder(R, n) 其中,参数R是一个向量,存放柱面各个等间隔高度上的半径, n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。
样例六:用cylinder函数分别绘制柱面、花瓶和圆锥面。
subplot(1,3,1);
[x,y,z]=cylinder;
surf(x,y,z);
subplot(1,3,2);
t=linspace(0,2*pi,40);
[x,y,z]= cylinder(2+cos(t),30);
surf(x,y,z);
subplot(1,3,3);
[x,y,z]= cylinder(0:0.1:2,30);
surf(x,y,z);
样例七:用cylinder函数绘制两个相互垂直且直径相等的圆柱面的
相交图形。
[x,y,z]= cylinder(1,80);
z=[-1*z(2,:);z(2,:)];
surf(x,y,z)
hold on
surf(y,z,x)
axis equal
peaks 函数
fsurf(funx, funy, funz, uvlims)
fmesh(funx, funy, funz, uvlims)
其中,funx、funy、funz代表定义曲面x、y、z坐标的函数,通常
采用函数句柄的形式。uvlims为funx、funy和funz的自变量的取值范围,
用4元向量[umin, umax, vmin, vmax]描述 ,默认为[-5, 5, -5, 5]。
样例八:绘制螺旋曲面。
funx = @(u,v) u.*sin(v);
funy = @(u,v) -u.*cos(v);
funz = @(u,v) v;
fsurf(funx,funy,funz,[-5 5 -5 -2])
hold on
fmesh(funx,funy,funz,[-5 5 -2 2])
hold off