Я сделал мини-игру, которая позволяет перемещать квадратную переднюю и заднюю часть в зависимости от того, какая передняя сторона обращена. Теперь я хочу повернуть квадрат вокруг своей оси, но после его перемещения я не могу получить желаемый результат. Как использовать полярные координаты, чтобы это произошло? Или есть другой способ?
void displayScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0,u,0);
glRotatef(a,u*cos(a),u*sin(a),1);
glColor3f(1,1,1);
glBegin(GL_QUADS);
glVertex3f(-0.4,-0.4, -5.0);
glVertex3f( 0.4,-0.4, -5.0);
glVertex3f( 0.4, 0.4, -5.0);
glVertex3f(-0.4, 0.4, -5.0);
glEnd();
drawBullet();
glutSwapBuffers();
}
void ProcessSpecialKeys(unsigned char key, int x, int y)
{
if (key == GLUT_KEY_UP)
{
u+=0.1;
}
if (key == GLUT_KEY_DOWN)
{
u-=0.1;
}
if (key == GLUT_KEY_LEFT)
{
a+=10.0;
}
if (key == GLUT_KEY_RIGHT)
{
a-=10.0;
}
glutPostRedisplay();
}