はじめに
matplotlib mplot3dによる3Dグラフ上にトーラス結び目を表示する。
コード
解説
トーラス結び目について
https://amzn.to/2UlYkRJ
上記の本に記載の数式により、トーラス結び目を作成した。
トーラス結び目の式は以下のように表される。
$$x = (b+asin(pu))cos(qu)\\ y = (b+asin(pu))sin(qu)\\ z = asin(pu)$$トーラス結び目は媒介変数でデータを生成するので、uをnp.linspace(0,2*np.pi,100)として0から2πとする。ここでbはトーラス自体の大きい半径、aはトーラスの太さの半径となる。
この式では、曲面ではなく、トーラス曲面に沿った曲線が表示される。
p,qは、小円方向にp回、大円方向にq回まわったことを意味する定数。
モジュールのインポート
figの作成
トーラス結び目の生成,表示
表示には、plot(X,Y,Z)で散布図を用いた。’g.-‘で緑の点と線でトーラス結び目が表示される。
軸範囲、軸ラベル、アスペクト比の設定
回転アニメーション
作製した図を回転させると以下のようになる。
回転アニメーションは以下の記事を参考にして作成した。
[matplotlib 3D] 14. 3Dグラフの回転アニメーション
matplotlib mplot3d のグラフの回転アニメーション
コメント