SSブログ

カッシーニ曲線 Cassinian Curve [見て楽しむ三角関数]

Scratchカッシーニ曲線を描きます。

[Cassini曲線]

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

最初に変数です。スライダー表示にしている「度数」は焦点(中央にできる空白)の数で、値を変えると曲線の形が変わります。a, b, eは式で使う係数です。

[変数]

度数2から6までの曲線は次のようになります。

23456
[Cassini 2] [Cassini 3] [Cassini 4] [Cassini 5] [Cassini 6]


次に本体です。大きさを変えながら曲線を18回描くので、二重の繰り返しにしています。内側の繰り返しで曲線を一本書いています。

[本体]

内側の繰り返しが終了したら変数bの値を小さくしています。これにより曲線の大きさと形が内側に向かって少しずつ変化していきます。

次に初期設定です。ペンの設定や変数の初期設定を行なっています。

[初期設定]

次に初期設定の最後の呼び出している倍率計算です。最後の式の178の理由ですが、一番外側(最大)の曲線がY座標の範囲-180〜180より少し小さくなり、描画領域をはみ出さないように、この値を使っています。

[倍率計算]

次に、本体の外側の繰り返しの最初に呼び出している準備です。ペンを持ち上げ、描画を開始する点を計算して移動し、ペンを下ろしています。

[準備]

カッシーニ曲線を描くための式はこうなっています。rは半径、aは倍率(大きさ)、\( e=\frac{b}{a} \)、nは度数、θは角度です。
\[ r=a\sqrt{cos(n\theta)\pm\sqrt{e^{2n}-sin^2(n\theta)}} \] この式をプログラムにすると次のようになります。長い式なので分割して、式の右側から順番に計算します。

[計算]

計算の中で呼び出している階乗は次のようになります。底を指数回掛けて、結果を「階乗」変数に保持しておきます。この変数は計算の中で使います。

[階乗]

移動はいつも通りです。

[移動]

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

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