班上的老师给出了这个公式
w = x**2 + y**2 - z**2
并在下面的课堂上展示了它的3D图形。如何使用Matplotlib(减去交叉平面)绘制此图?我想首先需要选择w的特定值,例如10,否则无法进行3d绘图。那么我应该转换为极坐标,因为公式中的z ** 2?我试过这个并且失败了。任何帮助,将不胜感激。此外,这个形状有名称吗?
答案 0 :(得分:1)
知道了。在这里找到了一些好东西,并按照提供的公式,我有下面的Python代码。
http://msenux.redwoods.edu/Math4Textbook/Plotting/ParametricSurfaces.pdf
from __future__ import division
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=plt.figaspect(1)) # Square figure
ax = fig.add_subplot(111, projection='3d')
r=1;
u=np.linspace(-2,2,200);
v=np.linspace(0,2*np.pi,60);
[u,v]=np.meshgrid(u,v);
a = 1
b = 1
c = 1
x = a*np.cosh(u)*np.cos(v)
y = b*np.cosh(u)*np.sin(v)
z = c*np.sinh(u)
ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')
plt.show()