対数らせん Logarithmic spiral [見て楽しむ三角関数]
Scratchで対数らせんを描きます。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。XとYは曲線描く時に使う座標です。角度から半径を計算して、半径からX座標とY座標を計算します。aとbは式に出てくる係数です。bをスライダー表示にして実行時に値を見られるようにしています。
次に本体です。今回は終了条件はなく、2秒の間隔をおいてらせんを描き続けます。bは準備の中で乱数を設定し、bが正か負かによって回転の向きを選んでいます。bが正の値なら反時計回転、bが負の値なら時計回転になります。
次に準備です。ペンの準備、bの値の設定、開始座標の計算を行い、開始座標に移動しています。bの値は小さすぎても大きすぎても綺麗な曲線になりません。このため、絶対値が0.0005から0.009の間の値になるまで乱数を生成し続けます。bの符号によってaの値を決めています。
次に反時計回転です。角度を変えながら計算と移動を繰り返しています。反時計回転の場合、画面の中心から外に向かって曲線が伸びていきますので、描画領域の端に達したらプログラムを停止します。
次は時計回転です。こちらも角度を変えながら計算と移動を繰り返します。時計回転の場合、画面の外側から中心に向かって曲線が伸びていきますので、X座標Y座標が共に2より小さくなったら終了しています。
式はこうなっています。
\[ r=ae^{b\theta} \] rは半径、aとbは倍率(大きさ)、θは角度です。eはネイピア数と呼ばれ、その値はだいたい2.71828くらいです。この式をプログラムにすると次のようになります。
移動はいつも通りです。
完成版はこちら。
曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。
最初に変数です。XとYは曲線描く時に使う座標です。角度から半径を計算して、半径からX座標とY座標を計算します。aとbは式に出てくる係数です。bをスライダー表示にして実行時に値を見られるようにしています。
次に本体です。今回は終了条件はなく、2秒の間隔をおいてらせんを描き続けます。bは準備の中で乱数を設定し、bが正か負かによって回転の向きを選んでいます。bが正の値なら反時計回転、bが負の値なら時計回転になります。
次に準備です。ペンの準備、bの値の設定、開始座標の計算を行い、開始座標に移動しています。bの値は小さすぎても大きすぎても綺麗な曲線になりません。このため、絶対値が0.0005から0.009の間の値になるまで乱数を生成し続けます。bの符号によってaの値を決めています。
次に反時計回転です。角度を変えながら計算と移動を繰り返しています。反時計回転の場合、画面の中心から外に向かって曲線が伸びていきますので、描画領域の端に達したらプログラムを停止します。
次は時計回転です。こちらも角度を変えながら計算と移動を繰り返します。時計回転の場合、画面の外側から中心に向かって曲線が伸びていきますので、X座標Y座標が共に2より小さくなったら終了しています。
式はこうなっています。
\[ r=ae^{b\theta} \] rは半径、aとbは倍率(大きさ)、θは角度です。eはネイピア数と呼ばれ、その値はだいたい2.71828くらいです。この式をプログラムにすると次のようになります。
移動はいつも通りです。
完成版はこちら。
コメント 0