マトリックス変換とはポリゴンを移動や回転、縮小拡大する機能です。
マトリックス変換を利用する場合まずglMatrixMode(GL_MODELVIEW)を頭につけます。 次に、マトリックスを初期化します。 その後にどうしたいかの処理を書きます。
移動
glTranslatef()を使います。 [cc lang="c"]
glTranslatef(x方向への移動量、y方向への移動量、z方向への移動量); drawSquare(); [/cc]
回転
glRotatef()を使います。 [cc lang="c"]
glRotatef(回転させる角度、回転させる軸のx値、回転させる軸のy値、回転させる軸の値); drawSquare(); [/cc]
拡大縮小
glScalef()を使います。 [cc lang="c"]
glScalef(X方向の拡大縮小率、Y方向の拡大縮小率、Z方向の拡大縮小率); drawSquare(); [/cc]
マトリックス変換に適用される範囲を指定
glPushMatrix()とglPopMatrix()を使用する。 glPushMatrix()〜glPopMatrix()の中で実行されるマトリックス変換は、その範囲内で有効になります。
[cc lang="c"]
glPushMatrix(); glTranslatef(0.5f,0.5f,0.0f); drawCircle(); glPopMatrix();
[/cc]
移動
X軸方向の移動量 = cos(現在向いている方向)* 速度 Y軸方向の移動量 = sin(現在向いている方向)* 速度
[cc lang="c"]
float theta = targetAngle(角度) / 180.0 * M_PI; targetX = targetX + cos(theta) targetspeed; targetY = targetY * sin(theta) targetspeed;
glTranslatef(targetX, targetY, 0);
[/cc]