У меня есть код:
void kula(void)
{
glColor3f(1, 0, 0);
glutSolidSphere(0.2, 100.0, 100.0);
glFlush();
}
Следующий:
void Display()
{
..
kula();
..
}
Когда размер окна составляет 600x600, сфера в порядке. Но когда размер окна не является квадратом, например, 600x800 вместо сферы, это сплюснутое яйцо. Как мне с этим справиться?
Это немного сложно узнать, не видя полного процесса инициализации, но я думаю.
Вероятно, вы не настраиваете матрицу проекций в соответствии с вашим разрешением, gluPerspective
может помочь вам в этом. Вы должны называть это тем, что там происходит при изменении размера окна, например:
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective( field_of_view, (double)w/h, zner, zfar );
Эти ссылки могут помочь вам