更新:2023/12/31

beginDrawとendDrawについて

はるか
はるか
pg.beginDraw()とかpg.endDraw()って書かないと動かないんだが
ふゅか
ふゅか
そうね。PGraphicsを使う場合は必要なメソッドね。

beginDraw()endDraw() はPGraphicsで、図形の描画を開始および終了するために使われるメソッドです。

1. PGraphics

PGraphics を使用すると、異なる描画領域を作成して、そこに図形やイメージを描画できます。詳しくはこちらで解説しています。

2. beginDraw()

beginDraw() 関数はPGraphicsで描画を開始する際に呼び出されます。

3. endDraw()

endDraw()PGraphicsの描画を終了する際に使用します。

4. 使用例

beginDraw()endDraw()は次のように使用されます。

PGraphics pg;

void setup() {
  size(400, 400);
  // PGraphicsオブジェクトを作成します
  pg = createGraphics(200, 200);
}

void draw() {
  // PGraphicsオブジェクトで描画を開始します
  pg.beginDraw();
  pg.background(100);
  pg.stroke(255);
  pg.line(50, 50, 150, 150);
  // PGraphicsオブジェクトでの描画を終了します
  pg.endDraw();

  // PGraphicsオブジェクトの内容をメインウィンドウに表示します
  image(pg, 100, 100);
}

PGraphicsオブジェクトである pgbeginDraw()endDraw() の間でのみ描画操作を受け付けます。

これらの利用例として、例えば、背景レイヤーとアニメーションレイヤーを分けたい場合、それぞれのレイヤーに対応する PGraphics オブジェクトを使って独立して描画を行い、最終的にそれらを組み合わせるなどがあります。

はるか
はるか
なるほど。描画の開始と終了を示すのか。
PR