简介
在本实验中,我们将学习如何使用 Python Matplotlib 库创建具有三角形网格的 3D 曲面。
虚拟机提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
在本实验中,我们将学习如何使用 Python Matplotlib 库创建具有三角形网格的 3D 曲面。
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
首先,我们需要导入必要的库:
import matplotlib.pyplot as plt
import numpy as np
我们将定义半径和角度的变量:
n_radii = 8
n_angles = 36
我们将使用 linspace 函数创建半径和角度空间:
## 生成半径和角度空间(省略 r=0 的半径以消除重复)。
radii = np.linspace(0.125, 1.0, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)[..., np.newaxis]
我们将把极坐标转换为笛卡尔坐标:
## 将极坐标(半径,角度)转换为笛卡尔坐标(x,y)。
## 在此阶段手动添加 (0, 0),这样在 (x, y) 平面中就不会有重复的点。
x = np.append(0, (radii*np.cos(angles)).flatten())
y = np.append(0, (radii*np.sin(angles)).flatten())
我们将计算 z 来生成品客薯片形状的曲面:
## 计算 z 以生成品客薯片形状的曲面。
z = np.sin(-x*y)
我们将使用 plot_trisurf 函数创建三维曲面:
ax = plt.figure().add_subplot(projection='3d')
ax.plot_trisurf(x, y, z, linewidth=0.2, antialiased=True)
plt.show()
在本实验中,我们学习了如何使用 Python 的 Matplotlib 库通过三角网格创建三维曲面。我们导入了必要的库,定义了半径和角度的变量,创建了半径和角度空间,将极坐标转换为笛卡尔坐标,计算 z 以生成品客薯片形状的曲面,并使用 plot_trisurf 函数创建了三维曲面。