01 円を描いてみようー円の基本

円を描く5つのスタイル

プロセシングには円が描ける構文が5つあります。circle()ellipse()arc()verex()point()です。それぞれ特徴があり、circle()は真円のみ、ellipse()は楕円(長円)を描き、幅と高さを同じにすると円になります。(円は楕円の一種)arc()は円弧を描きます。幅と高さを同じにし、開始角度0と終了角度TWO_PI、モードをOPENにすれば円となります。verex()は頂点同士を結ぶ多角形の角を細かくすれば擬似的に円となります。最後にpoint()は本来点を描くものですが、線幅を大きくすれば円となります。境界線自体を大きくしているので、他の円のように塗りつぶし+境界線の表現はできません。

真円を描く


CIRCLE-0100 circle()で真円を描きます。円の中心位置と直径を決めます。

真円を描く
構文circlr(x, y, extent)x,yの位置に直径 extentの真円を描く。
パラメータx,(float) 円の中心のX座標
y(float) 円の中心のY座標
extent(float) デフォルトで円の直径 (extent: 範囲) 
戻り値voidなし

ellipse()で円を描く

CIRCLE-0101 ellipse()で円を描きます。中心座標x,yと幅、高さを設定します。作図は上記と同じになるので省略します。

楕円を描く
構文ellipse(x, y, w, h)x,yを中心に幅w、高さhの楕円を描きます。中心場所はellipseMode()で変更可能です。
パラメータx(float) 楕円の中心のX座標 または左上のX座標
y(float) 楕円の中心のY座標 または左上のY座標
w(float) デフォルトで楕円の幅 または右下のX座標
h(float) デフォルト楕円の高さ または右下のY座標
戻り値voidなし

ellipseMode()について

ellipseMode()ellipse()に与えられたパラメータの解釈を変更して円や楕円が描画される場所、大きさなどを変更します。ellipseMode(CENTER)はデフォルトで通常のellipse()パラメータと同じです。

ellipseMode(RADIUS)の中心座標はセンターで、幅と高さを半径で指定します。幅と高さは通常の2倍となります。

ellipseMode(CORNER)は中心座標を図形の左上隅にします。幅と高さは通常通りです。

ellipseMode(CORNERS)は中心座標を楕円の境界ボックスの1つの角の位置にします。幅と高さは反対側の角の位置と解釈します。

arc()で円を描く

CIRCLE-0103 arc()で円を描きます。x, yで中心位置、w, hで円弧の大きさ、start, stopで円弧の開始と終了角度をラジアンで指定します。この場合は0〜TWO_PI(360度)で円になります。

円弧を描く
構文arc(x, y, w, h, start, stop)
arc(x, y, w, h,start, stop, mode)
x,y位置にw,hの大きさでstart角からstop角まで円弧を描きます。X軸プラス方向を0度とし、時計回りに弧を描きます。
パラメータx(float) 円弧の楕円のx座標
y(float) 円弧の楕円のy座標
w(float) デフォルトで円弧の楕円の幅
h(float) デフォルトで円弧の楕円の高さ
start(float) ラジアンで指定された円弧を開始する角度
stop(float) ラジアンで指定された円弧を終了する角度
mode(int) PIE、OPEN、およびCHORD
戻り値void

終了角度を変えて円弧を描いています。分かりやすいように色を付けています。

モードをOPENにします。開始点と終了点が繋がり、境界線が描かれません。

モードをCHORD(弦)にします。開始点と終了点が繋がり、境界線が描かれます。

モードをPIEにします。開始点と終了点は中心点と繋がり、境界線が描かれます。

モードを指定しない場合は開始点と終了点は中心点と繋がり、境界線が描かれません。

verrex()で円を描く

CIRCLE-0104 vertex()は頂点と頂点を結ぶものですが、円の方程式を使い細かく結ぶことで円に近くなります。作例では多角形の数を100としています。

CIRCLE-0105 最後にpoint()で円を描いてみましょう。線幅で円の大きさを設定します。

ヘッダー画像はChatGTPで作成しました。

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

コメント

コメントする

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次