03 線を描いてみようー放射状

放射状の線を描く

LINE-0300 三角関数を使用する円の方程式で放射状の線を描いてみましょう。画面の中心を原点にするためtranslate()関数で座標を移動させます。移動するとy軸の上方向がマイナスになります。上方向はプラスにしたいのでscale()関数で軸を上下反転させます。線と線の間の角度を8度とします。

やってみよう 分割する角度を変えてみる 線幅を変更してみる 交互に線の長さを変えてみる 交互に色をつける

座標の原点を移動
構文translate(x, y)座標の原点を移動させます。
パラメータxfloat X軸方向の移動
yfloat Y軸方向の移動
戻り値voidなし
シェイプのサイズを拡大・縮小
構文scale(x, y)頂点の拡大・縮小により、シェイプのサイズを拡大・縮小します。
スケール値は10進のパーセントで指定します。例(2)=200%
他に3D構文等があります。
パラメータx(float) x軸内のオブジェクトをスケーリングする割合
y(float) y軸内のオブジェクトをスケーリングする割合
戻り値voidなし
円の方程式
方程式x=r*sin(th)
y=r*cos(th)
三角関数のsine、cosineを使用して円を表現します。
変数r円の半径(r= radiusの略)
th角度 (th=thetaの略)
SIN関数
構文sin(angle)角度の正弦を計算します。
パラメータanglefloat ラジアンの角度
戻り値float-1 から 1 の範囲
COS関数
構文cos(angle)角度の余弦を計算します。
パラメータanglefloat ラジアンの角度
戻り値float-1 から 1 の範囲
60分法の単位をラジアン単位に変換

プロセシングでは90度や360度などという60分法の度単位は使用できません。ラジアンという単位を使用します。1ラジアンは円の半径と同じ長さの円周の中心に対する角度です。
TWO_PIは定数で2πラジアン(360度)です。

構文radians(degrees)度単位をラジアン単位に変換する
パラメータdegreesfloat ラジアンに変換する角度
戻り値float変換されたラジアンの値

LINE-0301 今度は交互に線の長さを変えてみましょう。if文とトグルスイッチを使って円の半径を変えています。角度によっては隙間ができたり同じ長さの線が隣り合ったりします。

LINE-0302 放射状の線の始点を中心からではない方法で描いてみましょう。小円と大円を円の方程式で計算して、それをそれぞれline()関数に入れています。

LINE-0303 ここで別の方法で放射状の線を描いてみます。rotate()を使って図形を回転させる方法です。

回転
構文rotate(angle)図形を回転させる
パラメータangle(float) ラジアンで指定された回転角
戻り値voidなし

LINE-0304 応用で線の終点の座標を変えてみましょう。

LINE-0305 画面の幅や高さを等間隔に分割し、中心から放射状に線を引きます。対角線で線同士が重ならないようにdtを足したり引いたりしています。

LINE-0306 この放射パターンを並べてみます。パターンを関数化するのが普通のやり方ですが、ここでは繰り返しでパターンを移動させています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次