我有一個平面對象,我希望它能夠向前移動和左右旋轉。我希望飛機能夠朝着它所面對的方向前進。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代碼,或代碼,這些東西實際上影響您的矩陣。 –
我添加了它如何使用它.. – user195257