リサージュ Lissajous [見て楽しむ三角関数]
Scratchでリサージュを描きます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。aとbは係数で、値を変化させると曲線が変化するので、スライダー表示にして値を変更できるようにしています。
次に本体です。角度を0度から360度まで変化させて曲線を描画しています。
曲線がなめらかになるように角度は0.2度ずつ変化させます。詳細は省きますが、小数を含む計算は浮動小数点数になり、「ちょうど360度」にはなりません。ですので、繰り返しの終了条件はいつもの「360度になったら終了」ではなく「360度を超えたら終了」にしています。詳しくはこちら(英語です)。
次に準備です。変数の初期設定、ペンの準備、開始座標の計算を行い、スプライトを開始座標に移動しています。
式はこうなっています。大文字のAは倍率(大きさ)、小文字のaとbは係数、θは角度です。
\[ x=A\cos(a\theta) \\
y=A\sin(b\theta) \] 式は一見単純ですが、aとbの値をスライダーで変化させると曲線が様々に変化します。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。aとbは係数で、値を変化させると曲線が変化するので、スライダー表示にして値を変更できるようにしています。
次に本体です。角度を0度から360度まで変化させて曲線を描画しています。
曲線がなめらかになるように角度は0.2度ずつ変化させます。詳細は省きますが、小数を含む計算は浮動小数点数になり、「ちょうど360度」にはなりません。ですので、繰り返しの終了条件はいつもの「360度になったら終了」ではなく「360度を超えたら終了」にしています。詳しくはこちら(英語です)。
次に準備です。変数の初期設定、ペンの準備、開始座標の計算を行い、スプライトを開始座標に移動しています。
式はこうなっています。大文字のAは倍率(大きさ)、小文字のaとbは係数、θは角度です。
\[ x=A\cos(a\theta) \\
y=A\sin(b\theta) \] 式は一見単純ですが、aとbの値をスライダーで変化させると曲線が様々に変化します。
移動はいつも通りです。
完成版はこちら。