SSブログ

三芒形 Deltoid [見て楽しむ三角関数]

Scratch三芒形を描きます。デルトイドとも呼ばれます。

[三芒形]

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

最初に変数です。今回も媒介変数方程式なので半径は使わず、X座標とY座標を直接計算しています。

[変数]

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

[本体]

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

[準備]

式はこうなっています。aは倍率(大きさ)、θは角度です。
\[ x=2a\cos(\theta)+a\cos(2\theta) \\
y=2a\sin(\theta)-a\sin(2\theta) \] この式をプログラムにすると次のようになります。

[計算]

移動はいつも通りです。

[移動]

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

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

ScratchBasinを描きます。日本語にするとすれば、たらい曲線でしょうか。

[Basin]

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

最初に変数です。今回も極座標方程式ではなく媒介変数方程式なので、半径はなく、X座標とY座標を直接計算します。大きさはスライダー表示にして、プログラムを変更しなくても曲線の大きさを変えられるようにしています。大きさと倍率はほぼ同じ目的で使っていますが、曲線の描画中に倍率が変わると曲線が崩れてしまうので、プログラム開始時に大きさの値を倍率に固定して使っています。

[変数]

次に本体です。角度を0度から180度まで変化させながら計算、移動を繰り返すとこの曲線が描けます。

[本体]

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

[準備]

式はこうなっています。θは角度です。
\[ x=\sin(\theta)\cos(3\theta) \\
y=\cos^2(3\theta) \] この式をプログラムにすると次のようになります。式には倍率がありませんが、プログラムでは倍率を掛けています。

[計算]

曲線が描画範囲に収まるよう、最後にY座標を調整しています。

移動はいつも通りです。

[移動]

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

Carlos Sacréの8次曲線 Biquartic [見て楽しむ三角関数]

ScratchCarlos Sacréの8次曲線を描きます。

[Carlos Sacréの8次曲線]

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

最初に変数です。今回も半径は使わず、X座標Y座標を直接計算します。

[変数]

次に本体です。曲線がなめらかになるように、角度を0.1度ずつ変化させながら、計算移動を繰り返して曲線を描画しています。0度から180度まで角度を変化させるとこの曲線が描けます。

[本体]

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

[準備]

式はこうなっています。aは倍率(大きさ)、θは角度です。
\[ x=a\sin(3\theta)\cos(\theta) \\
y=a(\sin(3\theta)\sin(\theta))^2 \] この式をプログラムにすると次のようになります。

[計算]

曲線が描画範囲に収まるように、計算後にY座標を調整しています。
移動はいつも通りです。

[移動]

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

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

ScratchBesaceを描きます。besaceはフランス語で袋だそうです。

[Besace]

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

最初に変数です。今回は半径はなく、直接X座標Y座標を計算します。

[変数]

次に本体です。曲線がなめらかになるように、角度を0.1度ずつ変化させ、360度を超えるまで計算と移動を繰り返します。

[本体]

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

[準備]

式はこうなっています。aとbは倍率(大きさ)、θは角度です。
\[ x= a\cos(\theta)-b\sin(\theta) \\
y=-(\sin(\theta))x \] この式をプログラムにするとこうなります。今回はaとb両方に「倍率」を使っています。

[計算]

曲線が画面中央に表示されるように、最後にY座標を下に移動しています。

移動はいつも通りです。

[移動]

完成版はこちら

式の中のbの値を変化させると曲線の形が変化します。プログラムをいじって試してみてください。
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

対数らせん 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くらいです。この式をプログラムにすると次のようになります。

[計算]

移動はいつも通りです。

[移動]

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

リチュース Lituus [見て楽しむ三角関数]

Scratchリチュースを描きます。

[リチュース]

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

最初に変数です。大きさはスライダー表示にして変更できるようにしています。この変数の値を変えると、画面中央の渦の大きさが変化します。倍率はプログラム開始時に「大きさ」の値をコピーして固定し、描画中にスライダーを動かしても曲線に影響が出ないようにします。半径は角度をもとに計算します。X, Yは曲線の座標で、角度と半径から計算します。

[変数]

次に本体です。描画は画面の右端から始まり、角度が大きくなるに従って描画領域の中心に向かって曲線が伸びていきます。角度が2500度を超えるまで計算と描画を繰り返すので、ターボモードにしないとなかなか終わりません。

[本体]

次に準備です。この曲線は画面の外部から内部に向かって伸びてくるので、計算の結果スプライトが画面の中に入るまで(X<241を満たすまで)計算だけを繰り返しています。図のコメントにも書いてあるように、こうすると余計な線が描かれずに綺麗な曲線になります。その他はいつもと同じで、ペンの準備や変数の初期設定、スプライトの座標の計算を行っています。

[準備]

式はこうなっています。
\[ r=\frac{a}{\sqrt{\theta}} \] rは半径、aは倍率(大きさ)、θは角度です。分子のaは固定で分母が次第に大きくなっていくので、計算結果の半径 r (中心からの距離)はだんだん小さくなります。この式をプログラムにすると次のようになります。

[計算]

移動はいつも通りです。

[移動]

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

インボリュート 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)に移動します。計算と移動を繰り返すと軌跡が描かれ、最終的に渦巻きができあがります。

[移動]

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

スカラベ曲線 Scarabaeus [見て楽しむ三角関数]

Scratchスカラベ曲線を描きます。スカラベはフンコロガシのような虫だそうです。

[スカラベ曲線]

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

最初に変数です。aとbは画面上にスライダーを表示して、実行時に値を変更できるようにしています。こうするとプログラムをいちいち変更せずに曲線の形を変えることができます。XとYは曲線の座標です。座標は半径と角度から計算します。倍率は曲線を拡大表示するために使います。

[変数]

次に本体です。二重の繰り返しで大きさを変えながら曲線を15回描いています。一つの曲線を描くために、内側の繰り返しで角度を0度から360度まで変化させています。薄紫の「表示する」と「隠す」はスプライトの表示で、描画中は表示して完了したら隠しています。

[本体]

準備はプログラムの最初で一度だけ呼び出します。ペンの設定、変数の初期設定、座標の計算を行い、開始座標に移動します。

[準備]

式はこうなっています。rは半径、aとbはスライダー表示にしたパラメータ、θは角度です。
\[ r=a\cos(2\theta)-b\cos(\theta) \] この式をプログラムにすると次のようになります。倍率は今回は固定値で、準備で初期設定しています。

[計算]

移動はいつも通りです。計算で求められたX座標Y座標に移動することにより軌跡が描かれ、曲線になります。

[移動]

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

5次曲線 Quintic Curve [見て楽しむ三角関数]

Scratch5次曲線を描きます。式を見ても5次曲線には見えませんが、元サイトに従っておきます。

[5次曲線]

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

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

[変数]

次に本体です。角度を-160度から160度まで変化させながら計算、移動するとこの曲線を描けます。

[本体]

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

[準備]

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

[計算]

移動はいつも通りです。

[移動]

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

魚雷曲線 Torpedo Curve [見て楽しむ三角関数]

Scratch魚雷曲線を描きます。

[魚雷曲線]

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

最初に変数です。いつもと変わりありません。XとYは曲線の座標、倍率は曲線の大きさ、三角関数の計算結果を保持する半径、角度は三角関数に与えるパラメータです。

[変数]

次に本体です。二重の繰り返しで大きさを変えて70回描画しています。一つの魚雷は角度を0度から180度まで変化させて計算すると描画できます。曲線を滑らかにするために、角度は0.5度ずつ変化させています。

[本体]

初期設定はプログラムを実行する時に最初に一度だけ行う処理をまとめています。スプライトを隠し、画面を消去、ペンを設定して、変数を初期化しています。

[初期設定]

準備は曲線一本ごとに呼び出す処理です。角度を0にして開始座標を計算し、移動しています。

[準備]

式はこうなっています。rは半径、aは倍率(大きさ)、θは角度です。
\[ r=a\cos(\theta)\cos(2\theta) \] この式をプログラムにすると次のようになります。最初に半径を計算し、半径と角度から次に移動するX座標とY座標を計算します。最後にX座標を160だけ左にずらしています。X座標をそのまま使うと描画領域の右側に描画され、曲線が領域からはみ出してしまうからです。

[計算]

移動はいつも通りで、計算で求められたX座標Y座標に移動します。移動すると軌跡が描かれ、最終的に曲線が魚雷の形になります。

[移動]

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

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