マルタ十字 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座標の入れ替えは次のようになります。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。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座標の入れ替えは次のようになります。
移動はいつも通りです。
完成版はこちら。