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