我正在一個方形窗口中繪製一個多邊形。當我調整窗口的大小時,例如通過全屏顯示,縱橫比會受到干擾。從參考資料中,我發現了一種保留寬高比的方法。下面是代碼:OpenGL - 在調整窗口大小時保持長寬比
void reshape (int width, int height) {
float cx, halfWidth = width*0.5f;
float aspect = (float)width/(float)height;
glViewport (0, 0, (GLsizei) width, (GLsizei) height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(cx-halfWidth*aspect, cx+halfWidth*aspect, bottom, top, zNear, zFar);
glMatrixMode (GL_MODELVIEW);
}
這裏,CX是X中的zNear面的眼睛航天中心我請求,如果有人可以請解釋我怎麼能計算出這一點。我相信這應該是glFrustum()的前兩個參數的平均值。我對嗎?任何幫助將不勝感激。
取決於您要存檔的內容。什麼是當前的投影矩陣不保留方面?你使用GLUT? – 2012-04-17 04:17:06
讓我們說generic..glFrustum(左,右,下,上,近,遠)。是的,使用GLUT。 – Iceman 2012-04-17 04:28:27