インボリュート Involute [見て楽しむ三角関数]
Scratchでインボリュートを描きます。渦巻きです。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。「大きさ」はスライダー表示にして値を変更できるようにしています。いつもと同じ名前で大きさと言っていますが、ここでは渦の間隔に反映されます。その他の変数はこれまでと同じ用途です。
次に本体です。三角関数に与える角度は0度から始めて、曲線が描画領域の端に達するまで角度を増やしながら描き続けます。
次に準備です。ペンの準備、変数の初期設定、開始座標の計算を行い、開始座標に移動しています。
式はこうなっています。
\[ x=a\left(\cos(\theta)+\theta \sin(\theta)\right) \\
y=a\left(\sin(\theta)-\theta \cos(\theta)\right) \] この式をプログラムにすると次のようになります。
Scratchでは、sinとcosの引数に与えるθは角度、sinやcosの外にあるθはラジアンになります。式の中のaはいつも通り倍率(大きさ)なのですが、今回は渦の間隔として現れてきます。描画領域の端に達するまで角度を変えながら線を描き続けるので、aの値によらず最終的な渦巻きの大きさはだいたい同じになります。
ラジアンの計算は別のブロックとして定義しています。次のような計算を行います。
計算結果は変数「ラジアン」に保存し、上の計算の中で使っています。
移動はいつも通りです。計算で求められた座標(X,Y)に移動します。計算と移動を繰り返すと軌跡が描かれ、最終的に渦巻きができあがります。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。「大きさ」はスライダー表示にして値を変更できるようにしています。いつもと同じ名前で大きさと言っていますが、ここでは渦の間隔に反映されます。その他の変数はこれまでと同じ用途です。
次に本体です。三角関数に与える角度は0度から始めて、曲線が描画領域の端に達するまで角度を増やしながら描き続けます。
次に準備です。ペンの準備、変数の初期設定、開始座標の計算を行い、開始座標に移動しています。
式はこうなっています。
\[ x=a\left(\cos(\theta)+\theta \sin(\theta)\right) \\
y=a\left(\sin(\theta)-\theta \cos(\theta)\right) \] この式をプログラムにすると次のようになります。
Scratchでは、sinとcosの引数に与えるθは角度、sinやcosの外にあるθはラジアンになります。式の中のaはいつも通り倍率(大きさ)なのですが、今回は渦の間隔として現れてきます。描画領域の端に達するまで角度を変えながら線を描き続けるので、aの値によらず最終的な渦巻きの大きさはだいたい同じになります。
ラジアンの計算は別のブロックとして定義しています。次のような計算を行います。
計算結果は変数「ラジアン」に保存し、上の計算の中で使っています。
移動はいつも通りです。計算で求められた座標(X,Y)に移動します。計算と移動を繰り返すと軌跡が描かれ、最終的に渦巻きができあがります。
完成版はこちら。