Matlab:三维绘图

目录

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命令的调用格式
调用格式说明
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作图')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值