绘制 3D 双曲面

Plotting A 3D Hyperboloid

我在class的老师给了这个公式 −0.3 **2−0.3 **2+ **2=1.

并在下面的 class 中展示了它的 3d 图形。我只是执行了一半的图形,我不知道 如何绘制其余图形。以下代码 从 matplotlib 导入 cm 将 matplotlib.pyplot 导入为 plt 将 numpy 导入为 np

X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)

Z = np.sqrt(0.3*(X **2 + Y **2) + 1)
ax = plt.gca(projection='3d')
plot1 = ax.plot_surface(X, Y, Z, cmap='jet', alpha=0.6, vmin=-5, vmax=5)
plt.colorbar(plot1)

plt.show()

enter image description here

这是因为当你改变关于z轴的表达式时,无论你用什么值代替x,y,结果都是正的,因为平方。只需添加 -Z 值是一个简单的解决方案。

ax.plot_surface(X, Y, Z, cmap='jet', alpha=0.6, vmin=-5, vmax=5)
ax.plot_surface(X, Y, -Z, cmap='jet', alpha=0.6, vmin=-5, vmax=5)