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

时间:2011-04-03 04:35:23

标签: 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;

     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();         
}

如何在平面上找到三角形的坐标位置?它也在平面上旋转和移动。感谢。

1 个答案:

答案 0 :(得分:1)

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