при использовании неквадратных разрешений сфера излишка растягивается

0

У меня есть код:

void kula(void)
{
  glColor3f(1, 0, 0);
  glutSolidSphere(0.2, 100.0, 100.0); 
  glFlush();
}

Следующий:

void Display()
{
..
kula();
..
}

Когда размер окна составляет 600x600, сфера в порядке. Но когда размер окна не является квадратом, например, 600x800 вместо сферы, это сплюснутое яйцо. Как мне с этим справиться?

Теги:
opengl
geometry
glut

1 ответ

2

Это немного сложно узнать, не видя полного процесса инициализации, но я думаю.

Вероятно, вы не настраиваете матрицу проекций в соответствии с вашим разрешением, gluPerspective может помочь вам в этом. Вы должны называть это тем, что там происходит при изменении размера окна, например:

glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective( field_of_view, (double)w/h, zner, zfar );

Эти ссылки могут помочь вам

Ещё вопросы

Сообщество Overcoder
Наверх
Меню