サイクロイド Cycloid [見て楽しむ三角関数]
Scratchでサイクロイドを描きます。今回の曲線は単純でつまらないので、色を変化させ、太さと大きさを調節可能にします。カモメ?眉毛?
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。太さと大きさはスライダー表示にして、プログラムを変更しなくても値を変えられるようにしています。
次に本体です。今回は繰り返しは一回です。角度を-360度から360度まで変化させるとこの曲線が描けます。
準備は変数を初期化したり開始座標を計算して移動したりします。色は描画するごとに変化するように乱数を使います。
式はこうなっています。
\[ x=r\left(\theta-\sin(\theta)\right) \\
y=r\left(1-\cos(\theta)\right)\] rは普通は半径(英語でradiusのr)です。ここではrに大きさ(倍率)を当てはめて、曲線の大きさを変化させています。
Scratchでは関数の外側のθはラジアン、関数の引数のθは角度ですので、X座標Y座標を求める前にラジアンも計算しておきます。
上の式をScratchのプログラムにするとこうなります。
移動するときにペンの色の濃さを変えています。
Scratchではペンの色の濃さは数字で指定します。 0に近づくほど濃く、100に近づくほど薄くなります。ここでは濃さの計算にはX座標の絶対値を使っていて、画面の中心に近づくほどX座標の値が小さくなるので色が濃く、中心から離れるほどX座標の値が大きくなるので色が薄くなります。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。太さと大きさはスライダー表示にして、プログラムを変更しなくても値を変えられるようにしています。
次に本体です。今回は繰り返しは一回です。角度を-360度から360度まで変化させるとこの曲線が描けます。
準備は変数を初期化したり開始座標を計算して移動したりします。色は描画するごとに変化するように乱数を使います。
式はこうなっています。
\[ x=r\left(\theta-\sin(\theta)\right) \\
y=r\left(1-\cos(\theta)\right)\] rは普通は半径(英語でradiusのr)です。ここではrに大きさ(倍率)を当てはめて、曲線の大きさを変化させています。
Scratchでは関数の外側のθはラジアン、関数の引数のθは角度ですので、X座標Y座標を求める前にラジアンも計算しておきます。
上の式をScratchのプログラムにするとこうなります。
移動するときにペンの色の濃さを変えています。
Scratchではペンの色の濃さは数字で指定します。 0に近づくほど濃く、100に近づくほど薄くなります。ここでは濃さの計算にはX座標の絶対値を使っていて、画面の中心に近づくほどX座標の値が小さくなるので色が濃く、中心から離れるほどX座標の値が大きくなるので色が薄くなります。
完成版はこちら。