它應該是rect,這將需要整個窗口的寬度。我期待這一點,因爲平截頭體的寬度是-5到5,矩形的大小是10x10,並且rect位於相同的z軸位置,就像接近圓錐體的平面。結果非常小,看起來不像一個矩形,我不知道爲什麼?意外的投影
void GLWidget::initializeGL() {
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
}
void GLWidget::resizeGL(int w, int h) {
glViewport(0,0, w, h);
glMatrixMode(GL_PROJECTION);
double ratio = (double)w/(double)h;
double size = ((10.0/ratio)/2.0);
glFrustum(-5.0, 5.0, -size, size, 10.0, 50.0);
}
void GLWidget::paintGL() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -10.0f);
glColor3f(0.0f, 0.0f, 0.0f);
glBegin(GL_QUADS);
glVertex3f(5.0f, -5.0f, 0.0f);
glVertex3f(5.0f, 5.0f, 0.0f);
glVertex3f(-5.0f, 5.0f, 0.0f);
glVertex3f(-5.0f, -5.0f, 0.0f);
glEnd();
glFlush();
}
試着寫你的程序接受鍵盤輸入,改變你傳遞給像截方法的參數,並在屏幕上顯示當前正在使用的值。然後你可以實時改變這些值,直到你知道你在做什麼錯誤:) – Patashu