摘要:二次曲面中繪制三維圖需要將坐標系聲明為。
python中繪制三維圖需要將坐標系聲明為3d
。
球面方程為
x 2 + y 2 + z 2 = R 2 x^2+y^2+z^2=R^2 x2+y2+z2=R2
寫為極坐標形式為
x = R sin ? θ cos ? φ y = R sin ? θ sin ? φ z = R cos ? θ /begin{aligned} x&=R/sin/theta/cos/varphi// y&=R/sin/theta/sin/varphi// z&=R/cos/theta/end{aligned} xyz?=Rsinθcosφ=Rsinθsinφ=Rcosθ?
令 R = 1 R=1 R=1,則畫圖為
代碼如下
>>> import matplotlib.pyplot as plt>>> import numpy as np>>> theta = np.arange(0,6.4,0.1).reshape(64,1)>>> phi = np.arange(0,3.2,0.1).reshape(1,32)>>> x = np.sin(theta)*np.cos(phi)>>> y = np.sin(theta)*np.sin(phi)>>> z = np.cos(theta)>>> ax = plt.gca(projection="3d")>>> ax.plot_surface(x,y,z)<mpl_toolkits.mplot3d.art3d.Poly3DCollection object at 0x000001CECF13A730>>>> plt.show()
二次曲面共有九種,代碼均與橢球曲面類似,為了加強立體感,可在畫圖的時候設置顏色映射,下列各圖部分用到
from matplotlib import cm#...ax.plot_surface(x,y,z,cmap=cm.coolwarm)
a,b,c均為1時的曲面 | |
---|---|
橢圓錐面 x 2 a 2 + y 2 b 2 ? z 2 c 2 = 0 /frac{x^2}{a^2}+/frac{y^2}{b^2}-/frac{z^2}{c^2}=0 a2x2?+b2y2??c2z2?=0 | |
橢球面 x 2 a 2 + y 2 b 2 + z 2 c 2 = 1 /frac{x^2}{a^2}+/frac{y^2}{b^2}+/frac{z^2}{c^2}=1 a2x2?+b2y2?+c2z2?=1 | |
單葉雙曲面 x 2 a 2 + y 2 b 2 ? z 2 c 2 = 1 /frac{x^2}{a^2}+/frac{y^2}{b^2}-/frac{z^2}{c^2}=1 a2x2?+b2y2??c2z2?=1 | |
雙葉雙曲面 x 2 a 2 + y 2 b 2 ? z 2 c 2 = ? 1 /frac{x^2}{a^2}+/frac{y^2}{b^2}-/frac{z^2}{c^2}=-1 a2x2?+b2y2??c2z2?=?1 | |
橢圓拋物面 z = x 2 a 2 + y 2 b 2 z=/frac{x^2}{a^2}+/frac{y^2}{b^2} z=a2x2?+b2y2? | |
雙曲拋物面 z = x 2 a 2 ? y 2 b 2 z=/frac{x^2}{a^2}-/frac{y^2}{b^2} z=a2x2??b2y2? | |
橢圓柱面 x 2 a 2 + y 2 b 2 = 1 /frac{x^2}{a^2}+/frac{y^2}{b^2}=1 a2x2?+b2y2?=1 | |
雙曲柱面 x 2 a 2 ? y 2 b 2 = 1 /frac{x^2}{a^2}-/frac{y^2}{b^2}=1 a2x2??b2 文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。 轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122207.html 相關文章
發表評論0條評論CoderDock男|高級講師TA的文章閱讀更多
閱讀需要支付1元查看
|