Как вы поворачиваете объект в OpenGL на определенное количество градусов? Есть ли встроенная команда или мне нужно использовать формулу? Я застрял в этом вопросе в течение нескольких дней. Это программа, которая рисует фигуру под моей мышью во время движения.
Скажите, у меня есть функция рисования:
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glColor3f ( 1, 1, 1 );
glBegin (toggle_type );
//Where cur_x and cur_y is the current mouse location that gets auto-updated
//ratiox is 0.7 and ratioy is 0.6
if (toggle_type==GL_QUADS) //rectangle from (-length, -length) to (length,length)
{
glVertex2f ( cur_x- length*ratiox, cur_y + length*ratioy );
glVertex2f ( cur_x+ length*ratiox, cur_y + length*ratioy );
glVertex2f ( cur_x+ length*ratiox, cur_y- length*ratioy );
glVertex2f ( cur_x- length*ratiox, cur_y- length*ratioy );
}
else if (toggle_type==GL_TRIANGLES)//triangle with vertices (-length, -length), (length, -length), (0, length).
{
glVertex2f ( cur_x- length, cur_y - length );
glVertex2f ( cur_x+length, cur_y - length );
glVertex2f ( cur_x, cur_y + length );
}
else if (toggle_type==GL_LINES) //line brush with vertices (0,-length), (0,length)
{
glVertex2f ( cur_x, cur_y - length );
glVertex2f ( cur_x, cur_y + length );
}
Я не могу просто использовать glRotatef (), прежде чем использовать glBegin, могу ли я? Я хочу повернуть способ, которым он нарисован вокруг моей мыши, на определенное количество градусов. Разве нет встроенной функции? Какую формулу я должен использовать, если нет?