SSブログ

カタランの曲線 Catalan's Curve [見て楽しむ三角関数]

Scratchカタランの曲線を描きます。カタランは数学者の名前です。

[カタランの曲線]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。いつもとほとんど同じです。

[変数]

次に本体です。今回は曲線を上と下に分割して2回の繰り返しで描画しています。最初は上半分で、角度を180度から1080度まで変化させて描画します。次に、角度を-1080度から-180度まで変化させて下半分を描画しています。

[本体]

次に準備です。ペンの準備、変数の初期化、開始座標の計算を行い、開始座標に移動しています。

[準備]

式はこうなっています。rは半径、aは倍率(大きさ)、θはラジアンです。
\[ r=\frac{a}{1-\theta^2} \] この式をプログラムにすると次のようになります。まず上の式を使って半径を計算し、半径と角度からX座標とY座標を計算しています。

[計算]

角度からラジアンを計算するブロックは次のようになります。

[ラジアン]

移動はいつも通りです。計算で求められた座標に移動します。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Jerabek Curve [見て楽しむ三角関数]

ScratchJerabek Curveを描きます。

[Jerabek Curve]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。kは式に出てくる定数です。値を変えると曲線も変わります。その他はいつもと変わりありません。

[変数]

次に本体です。角度を0度から360度まで変化させるとこの曲線が描けます。線がなめらかになるように0.1度ずつ角度を変えています。小数を使って計算すると角度の値が厳密に360にはならないので、繰り返しの脱出条件には不等号を使って「角度が360度を超えたら」としています。(詳しくはこちら。)

[本体]

次に準備です。いつもほとんど同じです。変数の準備、ペンの準備、開始座標の計算を行い、開始座標に移動しています。

[準備]

式はこうなっています。rは半径、aは倍率(大きさ)、kは定数、θは角度です。
\[ r=a\frac{k\cos(\theta)-1}{k-\cos(\theta)} \] この式をプログラムにすると次のようになります。最初に半径を計算し、半径と角度からX座標とY座標を計算しています。最後にX座標を左にずらし、曲線が描画領域の中心にくるようにしています。

[計算]

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

豆曲線 Bean Curve [見て楽しむ三角関数]

Scratch豆曲線を描きます。

[豆曲線]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。いつも通りです。

[変数]

次に本体です。角度を0度から180度まで変化させるとこの曲線が描けます。

[本体]

次に準備です。変数の準備、ペンの準備、開始座標の計算を行い、開始座標に移動しています。

[準備]

式はこうなっています。rは半径、θは角度です。
\[ r=\sin^3(\theta)+\cos^3(\theta) \] この式をプログラムにすると次のようになります。最初に半径を計算し、半径と角度からX座標とY座標を計算しています。式には倍率はありませんでしたが、プログラムでは曲線を拡大するために倍率を掛けています。

[計算]

計算の最後でX座標とY座標を調整して曲線全体を左下に移動しています。式の結果をそのまま使って描画すると、倍率が大きい場合に画面からはみ出してしまうからです。

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Capricornoid [見て楽しむ三角関数]

ScratchCapricornoidを描きます。

[Capricornoid]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。特に目新しい変数はありません。

[変数]

次に本体です。角度を0度から360度まで変化させるとこの曲線が描けます。繰り返しの中で色を少しずつ変化させています。

[本体]

次に準備です。変数の初期設定、ペンの準備、開始座標の計算を行い、スプライトを開始座標に移動しています。

[準備]

式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ r=a\frac{\sin(\theta)}{\cos(\theta)+b} \] 式ではbは変数ですが、以下のプログラムでは直接1.4と書いています。この数を変化させると曲線の形が変化します。最初に半径を計算し、半径と角度からX座標とY座標を計算しています。計算の最後でY座標を下方向に調整しています。これがないと画面の上半分に曲線が描かれ、曲線が大きくなるとはみ出してしまうからです。

[計算]

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

リサージュ Lissajous [見て楽しむ三角関数]

Scratchリサージュを描きます。

[リサージュ]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。aとbは係数で、値を変化させると曲線が変化するので、スライダー表示にして値を変更できるようにしています。

[変数]

次に本体です。角度を0度から360度まで変化させて曲線を描画しています。

[本体]

曲線がなめらかになるように角度は0.2度ずつ変化させます。詳細は省きますが、小数を含む計算は浮動小数点数になり、「ちょうど360度」にはなりません。ですので、繰り返しの終了条件はいつもの「360度になったら終了」ではなく「360度を超えたら終了」にしています。詳しくはこちら(英語です)。

次に準備です。変数の初期設定、ペンの準備、開始座標の計算を行い、スプライトを開始座標に移動しています。

[準備]

式はこうなっています。大文字のAは倍率(大きさ)、小文字のaとbは係数、θは角度です。
\[ x=A\cos(a\theta) \\
y=A\sin(b\theta) \] 式は一見単純ですが、aとbの値をスライダーで変化させると曲線が様々に変化します。

[計算]

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。