[iPhone] [マトリックス変換]OpenGL

  • |
   

マトリックス変換とはポリゴンを移動や回転、縮小拡大する機能です。


マトリックス変換を利用する場合まず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]

Related Posts Plugin for WordPress, Blogger...