SSブログ

ダイポール曲線 Dipole Curve [見て楽しむ三角関数]

Scratchダイポール曲線(Dipole Curve)を描きます。8曲線の第4回です。

[Dipole Curve]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

さて、いきなりですが、今回の式はこのようになっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ r^2=a^2\cos(\theta) \] 左辺が二乗になっているので、いつものr=...の形式に変換します。
\[ r=\pm\sqrt{a^2\cos(\theta)} \] 「±」は正の式と負の式があることを示しています。ですので、一見一本の繋がった曲線に見えますが、実は二本の独立した曲線です。このため二つのスプライトを使い正の曲線と負の曲線を同時に描画します。違う色で二本の曲線を描画するとより明確になります。

[Dipole Curve 2]

このような理由から、プログラムの開始処理がいつもとは少し違います。最初にステージ(下の図の青枠で囲った部分)のスクリプトを作成します。

[スプライト]

ステージでは以下のように緑色の旗をクリックした時に色を設定するとともに「開始」イベントを生成します。

[開始]

二つの黄色のスプライトは「開始」イベントを受け取ったら描画を開始します。

次に変数です。今回は上で説明した式のとおり半径を使います。色と大きさは二つの描画用スプライトで共有するため「すべてのスプライト用」の変数としています。大きさはスライド表示で値を変更できるようにします。その他の変数は二つのスプライトで独立した値を持つ必要があるので、個々のスプライトで専用の変数をもたせます。

[変数]

次に本体です。ステージのプログラムから「開始」イベントを受け取ると、各スプライトの処理が始まります。角度を0度から360度まで変化させるとこの曲線が描画できます。二つのスプライトで同じプログラムを記述します。

[本体]

次に準備です。これも二つのスプライトで同じになります。変数を初期化、開始点を計算して移動、ペンの色を設定しています。

[準備]

最初に説明した式をScratchのプログラムにすると以下のようになります。まず正の曲線の式です。

[計算]

次に負の曲線の式です。上の式とほぼ同じですが、半径の計算結果に-1を掛けて符号を反転させています。これにより描画領域の左側に曲線が描かれます。

[計算2]

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。