SSブログ

マルタ十字 Maltese Cross [見て楽しむ三角関数]

Scratchマルタ十字を描きます。

[マルタ十字]

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

最初に変数です。Zがありますが、軸が増えて三次元になるわけではなく、XとYを入れ替えるときに一時的に使う変数です。今回の式も媒介変数方程式で、極座標方程式ではないので、半径はありません。

[変数]

次に本体です。今回の式を使っていつものように曲線を描くと、全体の半分しか描かれません。そのため、繰り返しを二つ作り、最初に横方向の曲線、そのあとに縦方向の曲線を描いています。

[本体]

角度を90度から450度まで変化させながら計算、移動を繰り返すと、横方向の曲線が描けます。0度からではなく90度から開始しているのは、画面の中央から描画を始めるためです。縦方向も同様に繰り返すのですが、曲線を縦方向にするため、計算した後にX座標とY座標を入れ替えてから移動しています。

次に初期設定です。プログラムの最初に一度だけ実行したい処理を記述しています。

[初期設定]

次に準備です。一つの曲線を描くための準備処理です。

[準備]

式はこうなっています。aは倍率(大きさ)、θは角度です。
\[ x=a\cos(\theta)\left(\cos^2(\theta)-2\right) \\
y=a\sin(\theta)cos^2(\theta) \] この曲線をプログラムにすると次のようになります。\( cos(\theta) \) は何度も出てくるので先に計算して結果を変数に保存しておき、使い回しています。

[計算]

X座標とY座標の入れ替えは次のようになります。

[座標入れ替え]

移動はいつも通りです。

[移動]

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

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