0
我正在研究一个Qt编程书籍中的OpenGL示例。几乎一切工作正常,但默认规模似乎没有办法。我应该看到一个非常标准的立方体,但是我看到了这一点。Qt OpenGL默认缩放比例真的很奇怪
我多维数据集的代码如下所示:
glBegin(GL_QUADS);
//top face
qglColor(m_faceColors[0]);
glVertex3f(-m_cubeSize, m_cubeSize, -m_cubeSize);
glVertex3f(m_cubeSize, m_cubeSize, -m_cubeSize);
glVertex3f(m_cubeSize, m_cubeSize, m_cubeSize);
glVertex3f(-m_cubeSize, m_cubeSize, m_cubeSize);
// left face
qglColor(m_faceColors[1]);
glVertex3f(-m_cubeSize, -m_cubeSize, -m_cubeSize);
glVertex3f(-m_cubeSize, m_cubeSize, -m_cubeSize);
glVertex3f(-m_cubeSize, m_cubeSize, m_cubeSize);
glVertex3f(-m_cubeSize, -m_cubeSize, m_cubeSize);
等等......
我没有要求任何奇怪glScalef的。我resizeGL()看起来是这样的:
void GLWidget::resizeGL(int width, int height)
{
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
m_width = (height>0) ? (GLfloat)width/height : 1;
glOrtho(-width, +width, -1.0, 1.0, -2, 2);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
m_cubeSize是1.0
反正我做这个抽奖()函数时:
glScalef(275, 0.5, 0.5);
我看到这个(看起来是正确的):
有谁知道为什么X规模可能非常小 默认?我正在做这本书所说的,但我真的很困惑。我之前(使用Glut)已经完成了很多OpenGL,但这是我第一次使用Qt作为包装。
哦,哦。你是部分正确的。它实际上应该是glOrtho(-m_width,m_width,-1.0,1.0,-2,2);我使用的是像素宽度,而不是宽高比。 –