私は平面オブジェクトを持っています。前方に移動して左右に回転できるようにしたいと思います。私は、飛行機が直面している方向に進むようにしたい。OpenGLで問題を回転して翻訳する
これは私が持っているコードですが、動作しません。どこが間違っていますか?
directionX=sin(heading*M_PI/180.0);
directionZ=-cos(heading*M_PI/180.0);
if(keys['W']){
eyeX += directionX;
eyeZ += directionZ;
}
if(keys['S']){
eyeX -= directionX;
eyeZ -= directionZ;
}
if(keys[VK_LEFT])
heading -= 1;
if(keys[VK_RIGHT])
heading += 1;
面が見出しを使用して回転させ、そしてeyeX & EYEZを用いて翻訳されます。
//Aircraft
glPushMatrix();
glRotatef(-heading, 0,1,0);
glTranslatef(eyeX,eyeY,eyeZ);
model.speedDisplayFaceNormals();
//model.drawBoundingBox();
//model.drawOctreeLeaves();
glPopMatrix();
どのように機能していないのかをより明確に説明する必要があります。同様に座標軸の向きをどのように設定したかを記述することは理にかなっています。 – unwind
また、あなたのglRotate/glTranslateコード、またはこの物が実際にあなたのマトリックスに影響を与えるコードを投稿してください。 –
Iveはその使い方を追加しました。 – user195257