push()

独自のスタイルと変換を含む描画グループを開始します。

デフォルトでは、fill()のようなスタイルや rotate()のような変換は、 その後のすべての描画に適用されます。push()pop() 関数を使用すると、スタイルと変換の効果を特定のグループの図形、画像、テキストに限定できます。 例えば、図形のグループをマウスに追従させて移動させることができますが、スケッチの他の部分には影響を与えません:

// 描画グループを開始します。
push();

// 原点をマウスの位置に移動します。
translate(mouseX, mouseY);

// 顔のスタイルを設定します。
noStroke();
fill('green');

// 顔を描きます。
circle(0, 0, 60);

// 目のスタイルを設定します。
fill('white');

// 左目を描きます。
ellipse(-20, -20, 30, 20);

// 右目を描きます。
ellipse(20, -20, 30, 20);

// 描画グループを終了します。
pop();

// 虫を描きます。
let x = random(0, 100);
let y = random(0, 100);
text('🦟', x, y);

上記のコードスニペットでは、虫の位置はtranslate(mouseX, mouseY)の影響を受けません。 なぜなら、その変換はpush()pop()の間に含まれているからです。 虫は予想通りキャンバス全体を移動します。

注意:push()pop()は常にペアで呼び出されます。 両方の関数が描画グループを開始し終了するために必要です。

push()pop()はネストして サブグループを作成することもできます。例えば、上記のコードスニペットを変更して カエルの目により詳細を加えることができます:

// 描画グループを開始します。
push();

// 原点をマウスの位置に移動します。
translate(mouseX, mouseY);

// 顔のスタイルを設定します。
noStroke();
fill('green');

// 顔を描きます。
circle(0, 0, 60);

// 目のスタイルを設定します。
fill('white');

// 左目を描きます。
push();
translate(-20, -20);
ellipse(0, 0, 30, 20);
fill('black');
circle(0, 0, 8);
pop();

// 右目を描きます。
push();
translate(20, -20);
ellipse(0, 0, 30, 20);
fill('black');
circle(0, 0, 8);
pop();

// 描画グループを終了します。
pop();

// 虫を描きます。
let x = random(0, 100);
let y = random(0, 100);
text('🦟', x, y);

このバージョンでは、各目を描くコードはそれぞれ独自のpush()pop()関数の間に 含まれています。これにより、描画の正しい部分に詳細を追加しやすくなります。

push()pop()は 以下の関数の効果を含みます:

WebGLモードでは、push()pop()は いくつかの追加のスタイルの効果も含みます:

実例

Notice any errors or typos? Please let us know. Please feel free to edit src/core/structure.js and open a pull request!

関連するリファレンス