[matplotlib Animation] 9. 螺旋トーラスのアニメーション

matplotlib Animation
スポンサーリンク
スポンサーリンク

はじめに

matplotlib FuncAnimationによる螺旋トーラスのアニメーションについて説明する。

スポンサーリンク

コード

スポンサーリンク

解説

モジュールのインポート

軸と軸ラベルの設定

データの生成


トーラスは媒介変数でデータを生成するので、uを0から2π、vを-4πから4πまでとして、meshgrid化する。

螺旋状トーラスは媒介変数で以下のようになる。らせん的な変化のためにzに+vとしている。ここでbはトーラス自体の輪っかの半径、aはトーラスの太さの半径。

$$x = (b+asin(u))cos(v)\\ y = (b+asin(u))sin(v)\\ z = asin(u)+v$$


アニメーションの設定

plotに最初に表示するグラフをプロットしておく。[]で囲んでリストにしておく。

アニメーションでは古いプロットを消す必要がある。
3Dグラフの場合、plot[0].remove()で消すことができる。
u,vを[:num]でスライスしていくことで、x,y,zデータを生成し、順次グラフに表示するデータを拡張していく。
設定したデータは、plot[0]に3Dグラフをプロットしていく。

アニメーションの表示

FuncAnimationでanimationの表示。updateのnumを100としているので、frame数は100とする。100 frames×100 ms = 10000 ms = 10秒のアニメーションとなったものを、to_html5_videoでHTMLビデオ化。

スポンサーリンク

参考

トーラス - Wikipedia

 

コメント