OpenGL中关于坐标系原点在左上角还是左下角的一些整理
各軸之間的順序要求符合右手法則,即以右手握住Z軸,讓右手的四指從X軸的正向以90度的直角轉向Y軸的正向,這時大拇指所指的方向就是Z軸的正向.這樣的三個坐標軸構成的坐標系稱為右手空間直角坐標系.與之相對應的是左手空間直角坐標系。
1.OPENGL設備坐標系(dns)是左手坐標系,屏幕坐標系原點在左下角向上向右增加
OPENGL屏幕坐標系原點在左下角向上向右增加,D3D屏幕坐標系原點在左上角向下向右增加。
2.OpenGL 默認的坐標原點是屏幕的正中心
3.OPENGL坐標系可分為:世界坐標系和當前繪圖坐標系。
世界坐標系以屏幕中心為原點(0, 0, 0)。你面對屏幕,你的右邊是x正軸,上面是y正軸,屏幕指向你的為z正軸。長度單位這樣來定: 窗口范圍按此單位恰好是(-1,-1)到(1,1)。
當前繪圖坐標系是 繪制物體時的坐標系。程序剛初始化時,世界坐標系和當前繪圖坐標系是重合的。當用glTranslatef(),glScalef(), glRotatef()對當前繪圖坐標系進行平移、伸縮、旋轉變換之后, 世界坐標系和當前繪圖坐標系不再重合。改變以后,再用glVertex3f()等繪圖函數繪圖時,都是在當前繪圖坐標系進行繪圖,所有的函數參數也都是相 對當前繪圖坐標系來講的。
4.OpenGL默認屏幕坐標系原點在哪?屏幕左下角還是屏幕幾何中心處?
這個能設置嗎?
答:如果你用的是透視投影的話默認的應該是在屏幕的中心位置,如果用的是平行投影的話則要看你的glOrtho里面設置的參數了,如果是類似于 glOrtho(-320,320,-240,240,1,100)的話中心也在屏幕中心,這是你glVertex2d(0,0)就在中心,但如果 glOrtho(0,320,0,240,1,100)的話glVertex2d(0,0)就不在屏幕中心了,你可以試一試,當然glViewPort的設置也很重要,利用這個可以多視口顯示。
OpenGL:正投影和透視投影
正投影
正射投影,又叫平行投影。這種投影的視景體是一個矩形的平行管道,也就是一個長方體,如圖所示。正射投影的最大一個特點是無論物體距離相機多遠,投影后的物體大小尺寸不變。這種投影通常用在建筑藍圖繪制和計算機輔助設計等平面圖形方面,這些行業要求投影后的物體尺寸及相互間的角度不變,以便施工或制造時物體比例大小正確。
GLFrustum::SetOrthographic(GLfloat xMin,GLfloat xMax,GLfloat yMin,GLfloat yMax,GLfloat zMin,GLfloat zMax);
2.透視投影
透視投影符合人們心理習慣,即離視點近的物體大,離視點遠的物體小,遠到極點即為消失,成為滅點。它的視景體類似于一個頂部和底部都被切除掉的棱椎,也就是棱臺。這個投影通常用于動畫、視覺仿真以及其它許多具有真實性反映的方面
GLFrustum::SetPerspective(float fFov,float fAspect,float fNear,float fFar);
(來源https://www.jianshu.com/p/38c3d0d19993)
以上整理自網絡
總結
以上是生活随笔為你收集整理的OpenGL中关于坐标系原点在左上角还是左下角的一些整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu使用技巧和注意点
- 下一篇: OpenGL中glTranslate*(