デカルトの正葉線 Folium of Descartes [見て楽しむ三角関数]
Scratchでデカルトの正葉線を描きます。
前々回のマクローリンの三等分曲線や、前回のストロフォイドに似ています。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。cos3乗、cos角度、sin3乗、sin角度は計算結果を一時的に保持しておくための変数です。その他はいつもと同じです。
次に本体です。角度を-34度から120度まで変化させながら計算、移動を繰り返すとこの曲線を描画できます。
次に準備です。本体から呼び出されます。変数の初期化、ペンの設定、開始座標の計算、開始座標への移動を行なっています。
式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ r=\frac{3a\sin(\theta)\cos(\theta)}{sin^3(\theta)+cos^3(\theta)} \] この式をプログラムにすると次のようになります。まず半径を計算し、半径と角度からX座標とY座標を計算しています。
半径の計算を一行に書くことも可能ですが、画面からはみ出して見にくくなるので、ある程度の単位に分けて計算します。\(\sin(\theta)\)と\(\cos(\theta)\)はなんども出てくるので、一度計算しておいて結果を使いまわしています。
移動はこうなっています。
描画領域の外側ではペンをあげ、内側ではペンを下ろしています。こうすると描画領域の境界に余計な線が出ずに綺麗に描画できます。その後、計算結果の座標(X, Y)に移動すると、軌跡が曲線になります。
完成版はこちら。
前々回のマクローリンの三等分曲線や、前回のストロフォイドに似ています。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。cos3乗、cos角度、sin3乗、sin角度は計算結果を一時的に保持しておくための変数です。その他はいつもと同じです。
次に本体です。角度を-34度から120度まで変化させながら計算、移動を繰り返すとこの曲線を描画できます。
次に準備です。本体から呼び出されます。変数の初期化、ペンの設定、開始座標の計算、開始座標への移動を行なっています。
式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ r=\frac{3a\sin(\theta)\cos(\theta)}{sin^3(\theta)+cos^3(\theta)} \] この式をプログラムにすると次のようになります。まず半径を計算し、半径と角度からX座標とY座標を計算しています。
半径の計算を一行に書くことも可能ですが、画面からはみ出して見にくくなるので、ある程度の単位に分けて計算します。\(\sin(\theta)\)と\(\cos(\theta)\)はなんども出てくるので、一度計算しておいて結果を使いまわしています。
移動はこうなっています。
描画領域の外側ではペンをあげ、内側ではペンを下ろしています。こうすると描画領域の境界に余計な線が出ずに綺麗に描画できます。その後、計算結果の座標(X, Y)に移動すると、軌跡が曲線になります。
完成版はこちら。