8曲線 Eight Curve [見て楽しむ三角関数]
Scratchで8曲線を描きます。別名はGeronoのレムニスケートです。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。
今回は半径は使わず、三角関数を使ってX座標とY座標を直接計算します。
倍率は絵の大きさです。三角関数の値は0から1の間に収まるので、計算した値をそのまま座標に使って描画すると画面の中心に点が描かれて終わってしまいます。そのため、倍率を掛けて大きな絵にします。
大きさは倍率と同じですが、値を変更できるようにスライダー表示にしています。実行中にこのスライダーを動かすと綺麗な曲線にならないので、プログラムを実行する際に「大きさ」の値を「倍率」に入れて固定し、実行中の計算に使います。
次に本体です。角度を0度から360度まで変化させて計算、移動するとこの曲線が描画できます。
次に準備です。開始点を計算して移動しています。また変数を初期化しています。
式はこうなっています。aは倍率(大きさ)、θは角度です。
\[ x=a\sin(\theta)\\
y= a\sin(\theta)\cos(\theta) \] この式をScratchのプログラムにするとこうなります。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。
今回は半径は使わず、三角関数を使ってX座標とY座標を直接計算します。
倍率は絵の大きさです。三角関数の値は0から1の間に収まるので、計算した値をそのまま座標に使って描画すると画面の中心に点が描かれて終わってしまいます。そのため、倍率を掛けて大きな絵にします。
大きさは倍率と同じですが、値を変更できるようにスライダー表示にしています。実行中にこのスライダーを動かすと綺麗な曲線にならないので、プログラムを実行する際に「大きさ」の値を「倍率」に入れて固定し、実行中の計算に使います。
次に本体です。角度を0度から360度まで変化させて計算、移動するとこの曲線が描画できます。
次に準備です。開始点を計算して移動しています。また変数を初期化しています。
式はこうなっています。aは倍率(大きさ)、θは角度です。
\[ x=a\sin(\theta)\\
y= a\sin(\theta)\cos(\theta) \] この式をScratchのプログラムにするとこうなります。
移動はいつも通りです。
完成版はこちら。
コメント 0