Algorithm 三角形物体在平面上的位置检测

Algorithm 三角形物体在平面上的位置检测,algorithm,opengl,Algorithm,Opengl,我的代码如下;我想得到一个三角形的坐标位置,这个三角形在按下一个键后在一个平面上移动。如果我的代码错了,请改正。我完全是OpenGL的初学者 float rot=90; float forwd=0; float uprwd=0; switch (key) { case 'q': exit(0); break; case 'a': { forwd-=0.2; } break;

我的代码如下;我想得到一个三角形的坐标位置,这个三角形在按下一个键后在一个平面上移动。如果我的代码错了,请改正。我完全是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;

}


我怎样才能找到三角形在平面上的坐标位置?它也在平面上旋转和移动。谢谢。

旋转和/或平移三角形时,您正在更改其坐标。例如,GLTRANSTEF和glRotatef将变换矩阵应用于三角形的基本位置(0.2、0.0、0.0)。如果要跟踪三角形的新位置,还必须将这些变换(,)应用于跟踪三角形坐标的向量。

旋转和/或平移三角形时,要更改其坐标。例如,GLTRANSTEF和glRotatef将变换矩阵应用于三角形的基本位置(0.2、0.0、0.0)。如果要跟踪三角形的新位置,还必须将这些变换(,)应用于跟踪三角形坐标的向量。

我猜是这样,但我将如何用代码控制?你能给我一些想法吗?嗯,一种方法是只滚动自己的函数,在坐标向量上进行平移/旋转。它背后的数学并不需要大量的工作。如果你在3维空间旋转(X,Y,Z),你可以让你的旋转函数应用X=rcos(θ)sin(phi),Y=rsin(θ)sin(phi),Z=rcos(phi)。我猜是这样,但我如何用代码控制你能给我一个想法吗,一种方法是只滚动自己的函数,在坐标向量上进行平移/旋转。它背后的数学并不需要大量的工作。如果你在3维(X,Y,Z)中旋转,你可以让你的旋转函数应用X=rcos(θ)sin(φ),Y=rsin(θ)sin(φ),Z=rcos(φ)。
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();         
}