1
我的代碼如下;我想獲得按下按鍵後在平面上移動的三角形的座標位置。如果我的代碼錯誤,請糾正它。我是OpenGL的初學者。檢測飛機上三角形物體的位置
float rot=90;
float forwd=0;
float uprwd=0;
switch (key) {
case 'q':
exit(0);
break;
case 'a':
{
forwd-=0.2;
}
break;
case 'd':
{
forwd+=0.2;
}
break;
case 'w':
{
uprwd+=0.2;
}
break;
case 's':
{
uprwd-=0.2;
}
break;
case 'r':
{
rot+=20;
}
break;
case 't':
{
rot-=20;
}
break;
}
void display (void) {
{
glPushMatrix();
glLoadIdentity();
glTranslatef(forwd,uprwd,-6);
glRotatef(rot, 0.0, 0.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f(0.2, 0.0, 0.0);
glVertex3f(0.0, 0.2, 0.0);
glVertex3f(0.0, 0.0, 0.2);
glEnd();
glPopMatrix();
glutSwapBuffers();
}
我怎麼能找到飛機上的三角形的座標位置?它也在飛機上旋轉和移動。謝謝。
我猜猜它,但我會如何控制代碼,你可以給我想法PLZ? – 2011-04-03 04:54:06
那麼,一種方法就是滾動你自己的函數,在你的座標向量上做翻譯/旋轉。它背後的數學不需要大量的工作。如果你在三維(X,Y,Z)上旋轉,你可以使你的旋轉函數應用x = rcos(theta)sin(phi),y = rsin(theta)sin(phi),z = rcos PHI)。 – AndyG 2011-04-03 05:05:17