移動、回転、拡大縮小
図形を移動したり、回転したいとき、描く位置や角度を変えるのではなく、 図形を描く座標を移動したり、回転することで、同じ効果を上げることができます。 また、座標の目盛りのスケールを変更することで、図形を拡大縮小できます。・座標の原点を移動する→図形の位置の変更
・座標の軸を回転する→図形を回転
・座標軸のスケールを変える→図形の拡大縮小
座標の移動、回転、スケール変更
■ translate(x, y)座標軸を右にx、下にy、平行移動します。xとyは整数あるいは実数で指定します。
■ rotate(angle);
座標軸をangleの角度回転します。角度はラジアン単位で指定。度をラジアンにするにはradians()を使います。
【例】rotate(radians(30)); 座標を30度時計回りに回転する。■ scale(x, y);
座標軸を縮小、拡大する。
【例】scale(2.0, 0.5); x軸方向を200%に、y軸方向を50%にする。
座標の変更を戻す
translate(), rotate(), scale()が実行されると、 その効果は足し算的に積み重なって、続く描画にも影響します。 座標の変更を元に戻したい場合は、座標を変更する前の状態を pushMatrix()で覚えておき、座標の変更をし、その後戻したいタイミングで popMatrix()を実行します。■ pushMatrix();
現在の座標変換の状態を保存します。
■ popMatrix();
前の座標変換の状態に戻します。
translate(), rotate(), scale()がdraw関数内で実行されると、それらの座標変換はdraw関数の先頭で自動的にリセットされます。