Ogre螢幕座標的幾種方式

2021-06-21 12:11:54 字數 1235 閱讀 1172

在使用camera::getcameratoviewportboxvolume (real screenleft,real screentop, real screenright, real screenbottom, boolincludefarplane=false)時,不清楚這幾個值到底該怎麼設定呢?跟我用的螢幕座標mousepoint(x,y)有什麼不一樣呢?接 下來總結一下。

常見的ogre中的螢幕座標有以下三種方式:

1.

螢幕絕對座標系。

度量為畫素。如左上角為(0,0), 右下角為(800,600). 這些值分別表示在螢幕寬度和高度上的畫素位置。經常也表示為2d的資料,分別表示x方向和y方向。

2.

螢幕相對座標系。

左下角為(-1,-1),右上角為(1,1),rectangle2d::setcorners(real left, real top,real right, real bottom,bool updateaabb = true )用的就是就這個座標系。 其中left :left position in screen relative coordinates, -1 = left edge, 1.0 =right edge 。top :top positionin screen relative coordinates, 1 = top edge, -1 = bottom edge 。right:right position in screen relativecoordinates 。bottom :bottomposition in screen relative coordinates 。

3.

螢幕單位化絕對座標系。

左上角為(0,0),右下角為(1,1),camera::getcameratoviewportboxvolume (real screenleft, realscreentop, real screenright, real screenbottom, bool includefarplane=false)就是用的這個座標系。screenleft,screentop,screenright,screenbottom the bounds of theon-screen rectangle, expressed in normalised screen coordinates [0,1] 。

由此,1,3之間 是可以相互轉化的。不過要首先獲取到螢幕的寬度和高度,可以在絕對座標系和單位話絕對座標系之間游刃有餘了。

地理 投影 座標與螢幕座標的轉換

剛接觸到這個東東,確實頭暈 什麼地理座標,投影座標,螢幕座標等等.哎.地理知識中學學過 都不知道咋學的 數學貌似n多年不用也都還給老師了 確實悲哀.唉.終於認真的研究了一下才算明白是怎麼回事了 其實不要管什麼地理座標,投影座標還是螢幕座標,搞的你是非要知道天文地理似的才能去動手去做這個東東 原理掌握...

OpenGL中的螢幕座標和世界座標的轉換

glint viewport 4 gldouble modelview 16 gldouble projection 16 glfloat winx,winy,winz gldouble posx,posy,posz glpushmatrix 變換要繪圖函式裡的順序一樣,否則座標轉換會產生錯誤 gl...

螢幕座標 客戶區域(可視視窗)座標 頁面座標的區分

螢幕座標 可視視窗座標 頁面座標有時不能迅速的對應起來,為了更好的區分三者,特意畫了一張圖如下 顧名思義,即整個電腦螢幕上任意一點的位置座標,對應的屬性分別為screenx,screeny,範圍如上圖最外層紅色邊框範圍,座標為藍色虛線對應的座標。可以使用類似下面的 取得滑鼠事件的螢幕座標 var d...