Ranunculoid [見て楽しむ三角関数]
ScratchでRanunculoidを描きます。Ranunculusというキンポウゲ科の花の名前が由来だそうです。
曲線は久しぶりで、Scratchが3.0になって初めてです。以前の記事と比べると画像の雰囲気が随分変わっています。Scratch 3.0ではペンは拡張機能扱いで、プロジェクトを作ったら自分で追加しないと表示されません。画面の左下のアイコンをクリックすると追加できます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。Scartch 3.0になっても処理は共通です。
このプロジェクトでは大きさを変えながらたくさん曲線を描いていますが、曲線を一つだけ描くとこうなります。
これまでもそうでしたが、スペースキーを押すと背景が切り替わるようになっています。
背景にはScartchが提供している「座標」の画像を使います。スペースキーを押すとこの背景が表示されたり隠されたりします。
さて、変数からです。
XとYは計算の結果導き出されるスプライトの座標で、スプライトをこの座標に次々移動すると結果として曲線が描画されます。
角度は三角関数に与えて座標を計算するためのものです。角度を変えながら次々に座標を計算します。
倍率は曲線の大きさです。倍率を変えながら繰り返して描画すると最初の画像のような結果になります。
次に本体です。
まず初期設定してスプライトを表示します。
外側の繰り返しで大きさを変えながら曲線を25回描画します。
内側の繰り返しで曲線を一つ描画します。角度を変えながら座標を計算してスプライトを移動しています。これにより曲線が描画されます。
次に初期設定です。
開始時の倍率を設定してペンを初期化します。ペンは毎回色が変わるように乱数を使って明るさ、鮮やかさ、透明度を設定します。
次に準備です。曲線を一つ描くたびに変数や座標を初期化しています。またペンの色を変化させます。
ペンを上げて曲線が開始する座標に移動、ペンを下ろしています。ペンを上げ下げしないと、曲線と曲線の間に不要な線が表示されるのでこのようにしています。
この曲線を描画するための式はこうなっています。
\[ x= a(6\cos(\theta)-\cos(6\theta)) \\
y= a(6\sin(\theta)-\sin(6\theta)) \] xとyは座標(スプライトの位置)、aは倍率(大きさ)、θは角度です。この式をScratchで書くと次のようになります。
式の中には定数6が4回出てきます。この6を違う数字に書き換えると曲線が変化しますので試してみてください。
移動はいつも通りです。計算の結果導き出された(X, Y)座標にスプライトを移動することにより、ペンで曲線が描画されます。
完成版はこちら。
曲線は久しぶりで、Scratchが3.0になって初めてです。以前の記事と比べると画像の雰囲気が随分変わっています。Scratch 3.0ではペンは拡張機能扱いで、プロジェクトを作ったら自分で追加しないと表示されません。画面の左下のアイコンをクリックすると追加できます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。Scartch 3.0になっても処理は共通です。
このプロジェクトでは大きさを変えながらたくさん曲線を描いていますが、曲線を一つだけ描くとこうなります。
これまでもそうでしたが、スペースキーを押すと背景が切り替わるようになっています。
背景にはScartchが提供している「座標」の画像を使います。スペースキーを押すとこの背景が表示されたり隠されたりします。
さて、変数からです。
XとYは計算の結果導き出されるスプライトの座標で、スプライトをこの座標に次々移動すると結果として曲線が描画されます。
角度は三角関数に与えて座標を計算するためのものです。角度を変えながら次々に座標を計算します。
倍率は曲線の大きさです。倍率を変えながら繰り返して描画すると最初の画像のような結果になります。
次に本体です。
まず初期設定してスプライトを表示します。
外側の繰り返しで大きさを変えながら曲線を25回描画します。
内側の繰り返しで曲線を一つ描画します。角度を変えながら座標を計算してスプライトを移動しています。これにより曲線が描画されます。
次に初期設定です。
開始時の倍率を設定してペンを初期化します。ペンは毎回色が変わるように乱数を使って明るさ、鮮やかさ、透明度を設定します。
次に準備です。曲線を一つ描くたびに変数や座標を初期化しています。またペンの色を変化させます。
ペンを上げて曲線が開始する座標に移動、ペンを下ろしています。ペンを上げ下げしないと、曲線と曲線の間に不要な線が表示されるのでこのようにしています。
この曲線を描画するための式はこうなっています。
\[ x= a(6\cos(\theta)-\cos(6\theta)) \\
y= a(6\sin(\theta)-\sin(6\theta)) \] xとyは座標(スプライトの位置)、aは倍率(大きさ)、θは角度です。この式をScratchで書くと次のようになります。
式の中には定数6が4回出てきます。この6を違う数字に書き換えると曲線が変化しますので試してみてください。
移動はいつも通りです。計算の結果導き出された(X, Y)座標にスプライトを移動することにより、ペンで曲線が描画されます。
完成版はこちら。