SSブログ

ポアンソーのらせん Poinsot's spiral (csch) [見て楽しむ三角関数]

Scratchポアンソーのらせん (csch版)を描きます。

[ポアンソーのらせん (csch)]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。cschとラジアンは関数の計算結果をあとで使うために保持しておく変数です。

[変数]

次に本体です。最初に角度を60度から810度まで変化させながら計算、描画を繰り返します。次に角度の符号を反転させて-810度から-60度まで計算、描画を繰り返します。

[本体]

-60度から60度の間を描画しないのは、曲線が画面の外側にはみ出したり符号が反転する時に余計な線が描画されたりするからです。

次に準備です。ペンの準備、変数の初期設定、開始座標の計算、開始座標への移動を行なっています。

[準備]

式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。nも曲線の大きさに影響します。
\[ \newcommand{\csch}{\mathop{\rm csch}\nolimits} r=a\csch\left(n\theta\right) \] この式をプログラムにすると次のようになります。今回は \(n=\frac{1}{3}\) としています。最初にcsch関数の値を計算し、その結果から半径を計算、さらに半径と角度からX座標とY座標を計算しています。最後にY座標を下に移動して曲線全体が画面内に収まるように調整しています。

[計算]

cschは双曲余割関数です。Scratchでは提供されていないので、Wolfram Mathworldの定義を使って自分でブロックを定義します。
\[ \csch(\theta)=\frac{2}{e^{\theta}-e^{-\theta}} \] \(e\) はネイピア数です。この式をプログラムにすると次のようになります。

[csch]

計算結果はcsch変数に入れておき、計算の中で使います。

ラジアンもブロックを定義します。Scratchでは事前に定義されている三角関数には角度の値をそのまま使いますが、自分で定義する関数はラジアンを使う必要があります。

[ラジアン]

移動はいつも通りです。

[移動]

完成版はこちら
nice!(1)  コメント(0) 
共通テーマ:日記・雑感

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。