蛇状曲線 Serpentine Curve [見て楽しむ三角関数]
Scratchで蛇状曲線を描きます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
まず変数です。これらの変数を使って座標を繰り返し計算して、曲線を描画します。
cotは三角関数の一種cotangentの計算結果を保存しておくための変数です。
本体はこうなっています。6本の曲線を描くため二重ループになっていて、内側の繰り返しで曲線を一本描画します。
曲線を一本描くごとにbの値を増やしています。bはY座標の計算に使い、bの値を増やすと曲線が上下方向に広がります。
次に初期設定です。プログラムを実行するときに一度だけ呼び出され、変数とペンを初期化しています。
次に準備です。曲線一本を描く前に呼び出され、曲線の開始座標を計算し、その座標に移動しています。
次に計算ブロックです。三角関数と角度を使って曲線のX座標とY座標を計算します。
この計算ブロックは次の式をScratchで実装したものです。今回は極座標方程式ではないので半径(r)は使いません。
\[ x = a\cot(\theta) \\
y = b\sin(\theta)\cos(\theta) \] 最初に呼び出しているcotの計算式は次のとおりです。
\[ \cot(\theta) = \frac{\cos(\theta)}{\sin(\theta)} \] Scratchで実装するとこうなります。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
まず変数です。これらの変数を使って座標を繰り返し計算して、曲線を描画します。
cotは三角関数の一種cotangentの計算結果を保存しておくための変数です。
本体はこうなっています。6本の曲線を描くため二重ループになっていて、内側の繰り返しで曲線を一本描画します。
曲線を一本描くごとにbの値を増やしています。bはY座標の計算に使い、bの値を増やすと曲線が上下方向に広がります。
次に初期設定です。プログラムを実行するときに一度だけ呼び出され、変数とペンを初期化しています。
次に準備です。曲線一本を描く前に呼び出され、曲線の開始座標を計算し、その座標に移動しています。
次に計算ブロックです。三角関数と角度を使って曲線のX座標とY座標を計算します。
この計算ブロックは次の式をScratchで実装したものです。今回は極座標方程式ではないので半径(r)は使いません。
\[ x = a\cot(\theta) \\
y = b\sin(\theta)\cos(\theta) \] 最初に呼び出しているcotの計算式は次のとおりです。
\[ \cot(\theta) = \frac{\cos(\theta)}{\sin(\theta)} \] Scratchで実装するとこうなります。
移動はいつも通りです。
完成版はこちら。
コメント 0