[matplotlib 3D] 32. voxel heart

matplotlib 3D
スポンサーリンク

3D heart

コード

でできる図。

と回転アニメーション。

解説

midpointsはトーラスのと同じ。

heart = (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3 < 0

heartの3D形状は以下の式で表される。[1]

$$(x^2 + \frac{4}{9}y^2+z^2-1)^3 -x^2z^3+ -\frac{9}{80}y^2z^3 = 0$$

<0とすることでハートの部分だけボクセルを表示することができる。

ax.grid(False)
ax.set_axis_off()

とすることでgridと軸を非表示にできる。

アニメーションの部分はwireframeの回転アニメーションとおなじ。

参考

  1. Heart Surface — from Wolfram MathWorld

コメント