当我创建一个新的GLUT / openGL程序时,窗口大小调整使得屏幕的顶部+1和x方向的底部-1,我希望坐标与窗口的像素大小相匹配。我想这样做,因为当我重塑我的窗口时,项目被扭曲了。我正在寻找的是我应该读到的函数的名称。
答案 0 :(得分:0)
此功能是我项目的一部分,可以防止失真。
GLvoid myWidget::resizeGL(GLint width, GLint height) {
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, //The camera angle
(double)width / height,//The width-to-height ratio
1.0, //The near z clipping coordinate
100.0); //The far z clipping coordinate
glMatrixMode(GL_MODELVIEW);
}
答案 1 :(得分:0)
从我的项目
void GLWidget::resizeGL(int width, int height)
{
if (height==0) // Prevent A Divide By Zero By
{
height=1; // Making Height Equal One
}
w_screen=width; // GLWidget members (u don't need these)
h_screen=height; //
float ratio=width/height;
glViewport(0,0,width,height); // Reset The Current Viewport
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(fov,ratio,0.1f,200.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
在我的案例中,fov是公共成员(初始化为45)
希望有所帮助