OpenGl Может вращаться правильно по центру исходного примитивного многоугольника при изменении значений в glTranslatef? - PullRequest
0 голосов
/ 22 сентября 2019

m пытается двигаться, вращая многоугольную скалу как астероид, но используя противоположные glTranslatef(-50.f, -50.f, 0.0f), glTranslatef(50.f, 50.f, 0.0f), объект вращается правильно, поэтому не двигается.Но если я изменил значения, у меня есть движение, но есть искажение в glRotatef(spin, 0.0f, 0.0f, 1.0f).Не беспокойтесь о масштабе для проверенных и хорошо.Мне нужно знать, как повернуть правильный многоугольник по центру вашего источника, когда glTranslated имеют переменные значения. Посмотрите изображения на центральном многоугольнике, точная причина поворота glTranslatef - фиксированное значение и наоборот, но другие изображения, которые я пытаюсь изменить, затем получили искажение вращения.

Неправильное вращение при движении:

glPushMatrix();
   glTranslatef(50.0, 50.0, 0);
   glRotatef(spin , 0., 0., 1.);
   glBegin(GL_LINE_LOOP);
         glColor3ub(redc, greenc, bluec);
         glVertex2f(-0.04f/scale, 0.23f/scale);
         glVertex2f(-0.13f/scale, 0.205f/scale);
         glVertex2f(-0.285f/scale, 0.385f/scale);
         glVertex2f(-0.38f/scale, 0.105f/scale);
         glVertex2f(-0.185f/scale, -0.235f/scale);
         glVertex2f(-0.115f/scale, -0.06f/scale);
         glVertex2f(-0.035f/scale, -0.15f/scale);
         glVertex2f(-0.035f/scale, -0.05f/scale);
         glVertex2f(0.135f/scale, -0.15f/scale);
         glVertex2f(0.285f/scale, 0.15f/scale);
         glVertex2f(0.1f/scale, 0.25f/scale);
         glVertex2f(0.135f/scale, 0.55f/scale);
         glVertex2f(-0.085f/scale, 0.485f/scale);

   glEnd(); 
glTranslatef(-50.0, -50.0, 0);
//angle += 5.0f;
glPopMatrix();

...