バタフライ曲線 Butterfly Curve [見て楽しむ三角関数]
Scratchでバタフライ曲線を描きます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。sinとsin5乗は計算の途中結果を保存しておくための変数です。
次に本体です。曲線の大きさ(倍率)と曲線の色を少しずつ変えながら12本のバタフライ曲線を描いています。
次に準備です。ペンの準備と変数の初期設定を行なっています。
バタフライ曲線一本を描く処理は次のようになります。角度を0度から360度まで変化させながら計算、移動を繰り返すと、バタフライ曲線が一本描画できます。曲線が滑らかになるように、角度は0.1度ずつ変化させています。普通に実行すると時間がかかるので、Scratchではターボモードにするのがお勧めです。
これまでは本体で二重の繰り返しにしていましたが、今回は内側の繰り返しを外出ししています。外出しにあまり意味はありませんが、一般的には一つの関数や処理が長くなりそうな時には分割すると理解しやすくなります。
次は「開始点に移動」です。一つのバタフライ曲線を描き始める前に開始点に移動しておきます。
式はこうなっています。rは半径、θは角度、最初のeはネイピア数と呼ばれ、値は2.71828...です。eの階乗を計算する演算(関数)はScratchに最初から備わっています。
\[ r=e^{sin(\theta)}-2\cos(4\theta)+sin^5\left(\frac{2\theta-\pi}{24}\right) \] ここからなぜ蝶のような曲線が出てくるのかはよくわかりません。この式をプログラムにすると次のようになります。式が長いのでプログラムでは分割して計算しています。
試してみるとわかりますが、実は式の最後のsin5乗の値は足しても引いても式から取り除いても最終的な曲線にそれほど大きな影響はありません。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。sinとsin5乗は計算の途中結果を保存しておくための変数です。
次に本体です。曲線の大きさ(倍率)と曲線の色を少しずつ変えながら12本のバタフライ曲線を描いています。
次に準備です。ペンの準備と変数の初期設定を行なっています。
バタフライ曲線一本を描く処理は次のようになります。角度を0度から360度まで変化させながら計算、移動を繰り返すと、バタフライ曲線が一本描画できます。曲線が滑らかになるように、角度は0.1度ずつ変化させています。普通に実行すると時間がかかるので、Scratchではターボモードにするのがお勧めです。
これまでは本体で二重の繰り返しにしていましたが、今回は内側の繰り返しを外出ししています。外出しにあまり意味はありませんが、一般的には一つの関数や処理が長くなりそうな時には分割すると理解しやすくなります。
次は「開始点に移動」です。一つのバタフライ曲線を描き始める前に開始点に移動しておきます。
式はこうなっています。rは半径、θは角度、最初のeはネイピア数と呼ばれ、値は2.71828...です。eの階乗を計算する演算(関数)はScratchに最初から備わっています。
\[ r=e^{sin(\theta)}-2\cos(4\theta)+sin^5\left(\frac{2\theta-\pi}{24}\right) \] ここからなぜ蝶のような曲線が出てくるのかはよくわかりません。この式をプログラムにすると次のようになります。式が長いのでプログラムでは分割して計算しています。
試してみるとわかりますが、実は式の最後のsin5乗の値は足しても引いても式から取り除いても最終的な曲線にそれほど大きな影響はありません。
移動はいつも通りです。
完成版はこちら。