----------------------------------------------------------------------pushMatrix() 函式時,processing 會把當前的繪圖狀態壓入堆疊中。接著你可以做一些繪圖的操作,例如變換畫布的位置或旋轉畫布的方向等等,而這些操作不會影響到之前壓入堆疊的狀態。
當你想要恢復到之前保存的繪圖狀態時,可以呼叫 popMatrix() 函式。這個函式會將最後壓入堆疊的繪圖狀態彈出,並將當前的繪圖狀態設定為這個狀態。
函式 translate() 是一種用來改變畫布位置的函式。它可以將畫布沿著 X 軸和 Y 軸方向移動一定的距離,讓你可以在畫布上繪製出不同位置的圖形。
代碼: 選擇全部
void setup() {
size(400, 400);
}
void draw() {
background(255);
fill(0, 255, 0);//綠色
rect(50, 50, 100, 100);//(x,y,寛,高)
pushMatrix(); // 將當前的繪圖狀態壓入堆疊中
translate(150, 150);//移動桌布位置
fill(255, 0, 0);//紅色
rect(0, 0, 100, 100);//(x,y,寛,高)
popMatrix(); // 將最後壓入堆疊的繪圖狀態彈出,並設定當前的狀態為這個狀態
}