ケプラーの卵 Kepler's Egg [見て楽しむ三角関数]
Scratchでケプラーの卵を描きます。別名Simple Foliumです。foliumはラテン語で葉っぱだそうです。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
今回は単純な一本の曲線ではなく、大きさを変えながら曲線をたくさん描いています。ムール貝のように見えませんか。
まず変数です。今回はスライダー表示の変数「大きさ」はなく、プログラムで大きさを変化させています。
次に本体です。これまでの曲線では繰り返しは一重でしたが、今回は曲線を50回描くので二重の繰り返しになっています。
角度は0度から180度までで一本の線が完成します。360度まで続けても、同じ軌道上を二回たどるだけです。
次に「初期設定」です。これはプログラムの最初に一度だけ行う処理をまとめています。
次は「準備」です。これは曲線1本ごとに行う処理をまとめています。
この曲線を描くための式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ \begin{aligned}
r&=a\cos^3(\theta) \\
&=a\times\cos(\theta)\times\cos(\theta)\times\cos(\theta)
\end{aligned} \] これは前回のDouble Eggと似ています。Double Eggは\[ r=a\cos^2(\theta) \] つまり二乗で、卵が二つ描かれましたが、3乗にすると卵が一つになってしまいます。不思議ですね。
プログラムにするとこうなります。
最後にXを-180しています。この式をそのまま描画すると描画領域の右側だけに曲線が描かれ、左側は空白になります。これでは、曲線が大きくなった場合に描画領域内に収まらず絵が崩れてしまいます。そのため、Xを左に180ずらしています。
移動はいつも同じです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
今回は単純な一本の曲線ではなく、大きさを変えながら曲線をたくさん描いています。ムール貝のように見えませんか。
まず変数です。今回はスライダー表示の変数「大きさ」はなく、プログラムで大きさを変化させています。
次に本体です。これまでの曲線では繰り返しは一重でしたが、今回は曲線を50回描くので二重の繰り返しになっています。
角度は0度から180度までで一本の線が完成します。360度まで続けても、同じ軌道上を二回たどるだけです。
次に「初期設定」です。これはプログラムの最初に一度だけ行う処理をまとめています。
次は「準備」です。これは曲線1本ごとに行う処理をまとめています。
この曲線を描くための式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ \begin{aligned}
r&=a\cos^3(\theta) \\
&=a\times\cos(\theta)\times\cos(\theta)\times\cos(\theta)
\end{aligned} \] これは前回のDouble Eggと似ています。Double Eggは\[ r=a\cos^2(\theta) \] つまり二乗で、卵が二つ描かれましたが、3乗にすると卵が一つになってしまいます。不思議ですね。
プログラムにするとこうなります。
最後にXを-180しています。この式をそのまま描画すると描画領域の右側だけに曲線が描かれ、左側は空白になります。これでは、曲線が大きくなった場合に描画領域内に収まらず絵が崩れてしまいます。そのため、Xを左に180ずらしています。
移動はいつも同じです。
完成版はこちら。