ブースのレムニスケート 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座標を計算します。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に式です。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座標を計算します。
移動はいつも通りです。
完成版はこちら。