2011-11-09 52 views
1

教師類給這個公式繪圖雙曲面

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

,並顯示在其類圖形圖像,如下所示。我如何使用Matplotlib(減去相交平面)來繪製這個圖?我想首先需要選擇一個具體的值,例如10,否則3D繪圖將不可能。那麼我應該轉換爲極座標,因爲公式中的z ** 2?我試過了,失敗了。任何幫助,將不勝感激。此外,這個形狀是否有名字?

enter image description here

+1

關於第二個問題:這是一個[(圓形)雙曲面(https://secure.wikimedia.org/wikipedia/en/wiki/Hyperboloid) – KillianDS

回答

0

明白了。在這裏找到了一些很好的東西,並遵循所提供的公式,我有下面的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()