##pushMatrix()とpopMatrix()
前回までで基準点の移動、基準座標の傾きを見てきました。
さらっと見た感じ基準点の移動は、引数の計算で代替えきくのでは?とか思ったりしますが、まぁ複雑なコードを読み解く力もないので置いときましょう。
今日はpushMatrix(), popMatrix()。
pushMatrix()は基準点、基準座標の傾き情報の保存、
popMatrix()はpushMatrix()で保存した情報の展開。
translate()は面白くないので、rotate()を使ってみました。
sample.pde
void setup(){
size(640, 640);
background(0);
stroke(255);
frameRate(10);
translate(width/2, height/2 );
rotate(-PI/2);
pushMatrix();
fill(255,0,0);
rect(100,0,100,30);
rotate(PI/6);
fill(255);
rect(100,0,100,30);
popMatrix();
fill(255);
rotate(PI/3);
rect(100,0,100,30);
}
popMatrix()を使わない以下のコードだと、
sample.pde
void setup(){
size(640, 640);
background(0);
stroke(255);
frameRate(10);
translate(width/2, height/2 );
rotate(-PI/2);
//pushMatrix();
fill(255,0,0);
rect(100,0,100,30);
rotate(PI/6);
fill(255);
rect(100,0,100,30);
//popMatrix();
fill(255);
rotate(PI/3);
rect(100,0,100,30);
}
完成図は以下になります。
(3回目のrotateがPI/6+PI/3=PI/2になってしまうんですね。)
も少しVJっぽい動画を作りたいですが、まぁまぁゆっくりとやってければなと思います。
動画作るにしてもアイデアが必要ですしねぇ。どうしようかな。
以上、translateとrotateでした。