3D 绘图

概述

在科学计算和工程领域,3D 绘图是展示复杂数据和模型的重要工具。MATLAB 提供了强大的 3D 绘图功能,使得用户可以轻松创建和定制各种 3D 图形。本教程将介绍如何在 MATLAB 中进行 3D 绘图,包括基本概念、常用函数、代码示例和实践练习。

1. 3D 绘图基础

1.1 坐标系

在 3D 空间中,每个点由三个坐标 (x, y, z) 确定。MATLAB 使用右手坐标系,其中 x 轴指向右,y 轴指向上,z 轴指向屏幕外。

1.2 基本 3D 绘图函数

MATLAB 提供了多种 3D 绘图函数,常用的包括:

  • plot3:绘制三维曲线。
  • mesh:绘制三维网格图。
  • surf:绘制三维曲面图。
  • scatter3:绘制三维散点图。

2. 使用 plot3 绘制三维曲线

2.1 理论解释

plot3 函数用于绘制三维空间中的曲线。它类似于二维的 plot 函数,但需要三个坐标数组 (x, y, z)。

2.2 代码示例

% 创建数据
t = 0:pi/50:10*pi;
x = sin(t);
y = cos(t);
z = t;

% 绘制三维曲线
figure;
plot3(x, y, z);
title('3D Spiral');
xlabel('X');
ylabel('Y');
zlabel('Z');
grid on;

2.3 实践练习

尝试修改代码,绘制不同的三维曲线,例如螺旋线、正弦波等。

3. 使用 mesh 绘制三维网格图

3.1 理论解释

mesh 函数用于绘制三维网格图。网格图由一系列网格线组成,每个网格点由 (x, y, z) 坐标确定。

3.2 代码示例

% 创建数据
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X .* exp(-X.^2 - Y.^2);

% 绘制三维网格图
figure;
mesh(X, Y, Z);
title('3D Mesh Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');

3.3 实践练习

尝试修改代码,绘制不同的三维网格图,例如高斯函数、双曲抛物面等。

4. 使用 surf 绘制三维曲面图

4.1 理论解释

surf 函数用于绘制三维曲面图。曲面图由一系列曲面片组成,每个曲面片由 (x, y, z) 坐标确定。

4.2 代码示例

% 创建数据
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X .* exp(-X.^2 - Y.^2);

% 绘制三维曲面图
figure;
surf(X, Y, Z);
title('3D Surface Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');

4.3 实践练习

尝试修改代码,绘制不同的三维曲面图,例如球面、圆柱面等。

5. 使用 scatter3 绘制三维散点图

5.1 理论解释

scatter3 函数用于绘制三维散点图。散点图由一系列散点组成,每个散点由 (x, y, z) 坐标确定。

5.2 代码示例

% 创建数据
x = randn(100, 1);
y = randn(100, 1);
z = randn(100, 1);

% 绘制三维散点图
figure;
scatter3(x, y, z, 'filled');
title('3D Scatter Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');

5.3 实践练习

尝试修改代码,绘制不同的三维散点图,例如随机分布、球面分布等。

6. 图形定制和美化

6.1 理论解释

MATLAB 提供了丰富的图形定制选项,包括颜色、线型、标记、光照、视角等。

6.2 代码示例

% 创建数据
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X .* exp(-X.^2 - Y.^2);

% 绘制三维曲面图
figure;
surf(X, Y, Z);
title('Customized 3D Surface Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');

% 定制图形
colormap jet;
shading interp;
lighting gouraud;
light;
view(45, 30);

6.3 实践练习

尝试修改代码,定制不同的图形效果,例如不同的颜色映射、光照效果、视角等。

7. 总结

本教程介绍了 MATLAB 中的 3D 绘图功能,包括基本概念、常用函数、代码示例和实践练习。通过学习本教程,您应该能够使用 MATLAB 创建和定制各种 3D 图形。

8. 进一步学习

  • 探索 MATLAB 文档中的 3D 绘图函数,了解更多高级功能。
  • 尝试使用 MATLAB 的动画制作功能,创建动态 3D 图形。
  • 学习如何将 3D 图形导出为图像或视频文件。

通过不断实践和探索,您将能够熟练掌握 MATLAB 的 3D 绘图功能,并将其应用于各种科学计算和工程项目中。