SSブログ

ブースのレムニスケート Lemniscate of Booth [見て楽しむ三角関数]

Scratchブースのレムニスケートを描きます。8曲線の第10回です。

[ブースのレムニスケート]

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

最初に式です。rは半径、aとbは倍率(大きさ)、θは角度です。
\[ r^2=a^2\cos^2(\theta)-b^2\sin^2(\theta) \] 前回のブースの楕円は右辺が足し算でしたが、今回は引き算です。

次に変数です。aとbは式のaとbに対応しています。

[変数]

次に本体です。二重の繰り返しで複数の曲線を描いています。角度を0度から360度まで変化させると曲線が一本描けます。

[本体]

次に初期設定です。プログラムを実行すると最初に一度だけ呼び出されます。aは240、bは0に設定し、一本の曲線を描くごとに上の本体でbだけ値を増やしていきます。これにより形が少しずつ変化します。

[初期設定]

次に準備です。曲線を一本描くために開始点を計算して移動しています。

[準備]

計算は上で紹介した式をプログラムにしたブロックです。

[計算]

元の式は左辺がrの二乗なので、r=...の形式にします。
\[ r=\sqrt{a^2cos^2(θ)-b^2sin^2(θ)} \] 式は長いので、画面からはみ出さないように分割しています。計算した半径 r と角度からX座標とY座標を計算します。

移動はいつも通りです。

[移動]

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

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