使用非方形分辨率时,过量球体会出现拉伸

时间:2014-11-18 15:40:17

标签: c++ opengl geometry glut

我有一个代码:

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

下一步:

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

当窗口大小为600x600时,球体就可以了。但是当窗口大小不是正方形时,例如600x800而不是球体是扁平的蛋。我该如何处理?

1 个答案:

答案 0 :(得分:2)

如果没有看到完整的初始化过程,有点难以理解,但我会猜测。

您可能没有根据分辨率设置投影矩阵,gluPerspective可以帮助您解决问题。您应该在任何窗口调整大小事件时调用它,如下所示:

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

这些链接可以帮助您