[matplotlib 3D] 18. 3D surfaceプロットで球を表示

matplotlib 3D
スポンサーリンク
スポンサーリンク

はじめに

mplot3d surface plotで3Dグラフ上に球を表示する方法について解説する。

スポンサーリンク

コード

スポンサーリンク

解説

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))

uは0から2πの数列、vは0からπの数列。いずれも100個ある。
x,y,zは球面の方程式を極座標で表した場合で、

$$x=rcos\theta sin\phi, y=rsin\theta sin\phi, z=rcos\phi$$

となる。ちなみに直交座標系で半径rの球面は、

$$x^2+y^2+z^2=r^2$$

で表される。[1]

ax.set_aspect('equal')

とすることで、xyz軸の大きさを揃えて、真球をそのまま表示できる。

スポンサーリンク

参考

  1. 球面の方程式のいろんな表現と具体例 | 高校数学の美しい物語
にほんブログ村 IT技術ブログへ
にほんブログ村 IT技術ブログ Pythonへ
スポンサーリンク
matplotlib 3Dpython
スポンサーリンク
この記事をシェアする
sabopy.comをフォローする
スポンサーリンク
サボテンパイソン

コメント