摘要:二次曲面中繪制三維圖需要將坐標(biāo)系聲明為。
python中繪制三維圖需要將坐標(biāo)系聲明為3d
。
球面方程為
x 2 + y 2 + z 2 = R 2 x^2+y^2+z^2=R^2 x2+y2+z2=R2
寫(xiě)為極坐標(biāo)形式為
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,則畫(huà)圖為
代碼如下
>>> 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()
二次曲面共有九種,代碼均與橢球曲面類似,為了加強(qiáng)立體感,可在畫(huà)圖的時(shí)候設(shè)置顏色映射,下列各圖部分用到
from matplotlib import cm#...ax.plot_surface(x,y,z,cmap=cm.coolwarm)
a,b,c均為1時(shí)的曲面 | |
---|---|
橢圓錐面 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 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。 轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/122207.html 相關(guān)文章
發(fā)表評(píng)論0條評(píng)論CoderDock男|高級(jí)講師TA的文章閱讀更多
閱讀需要支付1元查看
|