すでに例題としては触れていますが、座標の移動や回転について説明していきます。
移動(translate)
さて次は、以下のグラフィックを描画してみましょう。

translateという関数を使って移動させるのですが、ここで注意する必要があるのは、translateはオブジェクト単体を移動するのではなく、空間全体を移動するということなのです。ですから、複数のオブジェクトが画面上にある場合は、すべて移動します。
また、以下のサンプルのように、translateを繰り返すと、その結果は蓄積されます。
描画されるたびに基準点が変わります。
void setup(){
size(400, 400, P3D);
}
void draw(){
background(0);
translate(width/2, height/2); //立体の中心を画面中央に移動
for(int i = 0; i < 5; i ++){ //立方体を、30ピクセルごとに5個生成
translate(30, 0);
box(20, 20, 20); //150 x 150 x 150pxの立方体を描
}
}
回転
次は回転です。
回転はrotateを使います。
rotateも、translateと同じように空間全体を回転します。

//Y軸を中心に回転する立方体
int angle; //角度を設定するための変数
void setup(){
size(400, 400, P3D);
angle = 0; //60度を設定
}
void draw(){
background(0);
angle += 1; //角度を1ずつ足していく
if(angle > 360) angle = 0; //360度を超えたら0に戻す
translate(width/2, height/2); //立体の中心を画面中央に移動
rotateY(radians(angle)); //Y軸に対してangleの数値分だけ回転
box(150, 150, 150); //150 x 150 x 150pxの立方体を描
}
上記のサンプルはY軸を中心に回転しています。
rotateX, rotateZを使って、他の軸を基準にした回転も加えてみましょう。
