Определить положение треугольного объекта на плоскости - PullRequest
1 голос
/ 03 апреля 2011

Мой код ниже; Я хочу получить координатную позицию треугольника, который движется на плоскости после нажатия клавиши. Если мой код неверен, пожалуйста, исправьте его. Я абсолютный новичок в 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 Ответ

1 голос
/ 03 апреля 2011

Когда вы поворачиваете и / или переводите треугольник, вы меняете его координаты.glTransltef и glRotatef применяют матрицы преобразования к базовой позиции вашего треугольника (например, 0,2, 0,0, 0,0).Если вы намерены отслеживать новую позицию вашего треугольника, вы также должны применить эти преобразования ( Матрица вращения , Перевод ) к вектору, который отслеживает координату вашего треугольника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...