長方形はrect関数で描く

processingでは、長方形をrect関数で描くことができます。

rect(mode);
rect(a,b,c,d);

なお、rect関数のパラメータの解釈はrect関数を呼び出す前に設定するrectMode関数のパラメータ(mode)によって変わってくるので、modeごとに解説したいと思います。

modeにCORNERを設定した場合(デフォルト)

modeにCORNERを設定した場合、rect関数のパラメータはそれぞれ以下のように解釈されます。

  • a (float) 長方形の左上位置のx座標
  • b (float) 長方形の左上位置のy座標
  • c (float) 長方形の横幅
  • d (float) 長方形の縦幅

実際にmodeをCORNERに設定して長方形を描いた例を以下に示します。

void setup(){
  size(400,400);
  fill(128,128,128);
  rectMode(CORNER);
  rect(100,100,200,200);
}
modeをCORNERに設定

なお、rectModeの設定を省略した場合は、modeにCORNERを設定した場合と同じものになります。つまり、デフォルト設定はCORNERとなっています。

modeにCORNERSを設定した場合

modeにCORNERSを設定した場合、rect関数のパラメータはそれぞれ以下のように解釈されます。

  • a (float) 長方形の左上位置のx座標 → 長方形の1つの頂点のx座標
  • b (float) 長方形の左上位置のy座標 → 長方形の1つの頂点のy座標
  • c (float) 長方形の右下位置のx座標 → 頂点(a,b)と反対に位置する頂点のx座標
  • d (float) 長方形の右下位置のy座標 → 頂点(a,b)と反対に位置する頂点のy座標

※設定する2つの頂点は左上と右下としていましたが、特にそのような設定にする必要はなく、左下と右上でもいいですし、順番も右下から左上でも構わないようです。とにかく、長方形の対角に位置する2つの頂点を指定します。

実際にmodeをCORNERSに設定して長方形を描いた例を以下に示します。

void setup(){
  size(400,400);
  fill(128,128,128);
  rectMode(CORNERS);
  rect(100,100,200,200);
}
modeをCORNERSに設定

modeにCENTERを設定した場合

modeにCENTERを設定した場合、rect関数のパラメータはそれぞれ以下のように解釈されます。

  • a (float) 長方形の中心位置のx座標
  • b (float) 長方形の中心位置のy座標
  • c (float) 長方形の横幅
  • d (float) 長方形の縦幅

実際にmodeをCENTERに設定して長方形を描いた例を以下に示します。

void setup(){
  size(400,400);
  fill(128,128,128);
  rectMode(CENTER);
  rect(100,100,200,200);
}
modeをCENTERに設定

modeにRADIUSを設定した場合

modeにRADIUSを設定した場合、rect関数のパラメータはそれぞれ以下のように解釈されます。

  • a (float) 長方形の中心位置のx座標
  • b (float) 長方形の中心位置のy座標
  • c (float) 長方形の横幅の半分
  • d (float) 長方形の縦幅の半分

実際にmodeをRADIUSに設定して長方形を描いた例を以下に示します。

void setup(){
  size(400,400);
  fill(128,128,128);
  rectMode(RADIUS);
  rect(100,100,200,200);
}
modeをRADIUSに設定

今回の場合、長方形の中心位置が\((100,100)\)で長方形の横幅、縦幅が400となっているので、長方形はキャンバスからはみ出してしまっています。

長方形の角を丸める

rect関数については長方形の角を丸めるための設定もあるようです。詳細を知りたい方は公式サイトをご覧ください。

コメントを残す