Skip to main content
 首页 » 编程设计

python之绘制双曲面

2025年05月04日11emanlee

类里老师给了这个公式

w = x**2 + y**2 - z**2 

并在下面的类里面展示了它的 3d 图形。如何使用 Matplotlib(减去相交平面)绘制此图?我想首先需要选择 w 的特定值,例如 10,否则将无法进行 3d 绘图。那我是不是应该因为公式中的z**2转为极坐标呢?我试过这个但失败了。任何帮助,将不胜感激。还有,这个形状有名字吗?

请您参考如下方法:

明白了。在这里找到了一些好东西,并按照给出的公式,我得到了下面的 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()