目录
1.三维曲线绘图命令:plot3
实例——绘制空间直线
实例——绘制三角曲线
2.三维曲线绘图命令:explot3
3.三维网格命令:mesh
实例——绘制网格面
实例——绘制山峰曲面
实例——绘制函数曲线
1.三维曲线绘图命令:plot3
plot3命令是二维绘图plot命令的扩展,使用格式基本相同,只是在参数中多了个第三维的信息。因此,plot(x,ys)和plot3(x,y,z,s)的意义是一样的。s用来控制曲线的类型,颜色,粗细等。
实例——绘制空间直线
>> x=1:0.1:10 %定义x
y=sin(x); %定义y
z=cos(x);
plot(y,z) %绘制二维图
plot3(x,y,z) %绘制三维图
实例——绘制三角曲线
>> close all
x=0:pi/10:2*pi; % 生成从 0 到 2*pi 的数据,步长为 pi/10
y1=sin(x);
y2=cos(x);
plot3(y1,y2,x,'m:p') % 绘制三维曲线,曲线颜色为品红色(m),使用点标记(:)和虚线样式(p)
grid on % 开启网格线,方便查看坐标
2.三维曲线绘图命令:explot3
调用格式 | 说明 |
explot3(x,y,z) | 在系统默认的区域x∈(-2Π,2Π),y∈(-2Π,2Π)上画出空间曲线x=x(t),y=y(t) |
zplot3(x,y,z,[a,b] | 绘制上述参数曲线在区域x∈(a,b),y∈(a,b)上的三维网格图 |
ezplot3(...,'animate') | 产生空间曲线的一个动画轨迹 |
% 定义参数范围
t = linspace(0, 10*pi, 1000);% 创建图形窗口
figure;
axis([-1 1 -1 1 0 10*pi]); % 设置坐标轴范围
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Animated 3D Curve');% 初始化线条对象
h = plot3(NaN, NaN, NaN, 'b', 'LineWidth', 2);% 循环更新曲线
for i = 1:length(t)% 定义曲线的参数方程x = cos(t(1:i));y = sin(t(1:i));z = t(1:i);% 更新线条对象的数据set(h, 'XData', x, 'YData', y, 'ZData', z);% 刷新图形drawnow limitrate;
end
3.三维网格命令:mesh
此命令生成的是由X,Y,Z指定的网线面,而不是单根曲线。
实例——绘制网格面
>> close all
x=-4:0.25:4;
y=x;
[X,Y]=meshgrid(x,y); %利用meshgrid函数基于x和y生成二维网格矩阵X和Y。
z=-x.^4+Y.^5;
mesh(Z)
title('网格面')
xlable('x'),ylable('y'),zlable('z')
对于一个三维网格图,有时用户不想显示背后的网格,可以利用hidden命令来实现透明。
hidden on | 将网格设为不透明状态 |
hidden off | 将网格设为透明状态 |
hidden | 在on和off之间转换 |
实例——绘制山峰曲面
用plot3,mesh,meshc和meshz画此函数曲线图形
>> mesh(z)
>> close all
t=-4:0.1:4;
[X,Y]=meshgrid(t);
z=peaks(X,Y);
subplot(1,2,1)
mesh(X,Y,Z),hidden on
title('不显示网格')
subplot(1,2,2)
mesh(X,Y,Z),hidden off
title('显示网格')
实例——绘制函数曲线
>> close all
x = -5:0.1:5;
% 生成网格矩阵
[X,Y] = meshgrid(x);% 计算 Z 值,处理除零错误
R = sqrt(X.^2 + Y.^2);
idx = R == 0; % 找出 R 为 0 的位置
Z = cos(R)./R;
Z(idx) = 1; % 当 R 为 0 时,根据极限值将 Z 设为 1% 创建 2x2 的子图布局
subplot(2,2,1)
plot3(X,Y,Z)
title('plot3作图')subplot(2,2,2)
plot3(X,Y,Z)
title('plot3作图')subplot(2,2,3)
plot3(X,Y,Z)
title('plot3作图')subplot(2,2,4)
meshz(X,Y,Z) % 这里改为 meshz 函数,与标题匹配
title('meshz作图')