1、glviewport(int x,int y,int width,int height) ————從裝置座標轉到視窗座標
x,y————以畫素為單位,指定了視口
的左下角(在第一象限內,以(0,0)為原點的)位置。
width,height————表示這個視口矩形的寬度和高度,根據視窗的實時變化重繪視窗。
glviewport在預設情況下,視口(也就是手機的畫素大小對應的矩形區域)
被設定為佔據開啟視窗的整個畫素矩形,也就是全屏顯示,手機視窗大小和它是大小相同的,我們可以設定width和height來得到我們想要的大小和比例。比如我有臺1080*1920的手機,但是我只想繪製乙個以左下角為原點,大小為320*480的繪圖區域,那麼我就可以設定成這樣:glviewport(0,0, 320, 480)。
2.glloadidentify 重置當前指定的矩陣為單位矩陣
2.glmatrixmode(gl_projection) ——————從眼睛座標到剪輯座標,使用透視(3d)效果
為了從眼睛座標到剪輯座標
,需要設定成投影矩陣模式,同樣的有下面兩種矩陣模式我們可以根據需要來設定。
gl_modelview —————— 模型視景矩陣
gl_textture —————— 紋理矩陣
gl是乙個狀態機,只裝載什麼都不做的身份矩陣,通過函式3我們能修改身份矩陣為乙個正交正投影。
3.glorthof(0, float backingwidth, 0, float backingheight, float znear, float zfar) ———— 做2d效果從左底部角落到螢幕的大小,所以是(0,0)到(backingwidth, backingheight),然後剪輯切面的最近和最遠的距離,也就是znear和zfar。
例如glorthof (-1, 2, -2, 2, -1 , 1) 就會得到乙個以螢幕中心為原點,寬高都等於螢幕二分之一的矩形區域。
4.glfrustumf(float left, float right, float bottom, float top, float znear, float zfar)————設定你想要的截錐體的型別,該方法中的引數分別對應攝像頭可視截錐體的左邊,右邊,底部,頂部的位置,以及眼睛離這個截錐體的最近距離和最遠距離。
要注意的是,這可能會出現灰白的情況,因為我們的平面是在z軸為0的時候顯示的,當znear和zfar的區間不包含0時,比如設定了最近距離是5,最遠距離是10,就會出現不顯示的情況,所以可以通過gltranslate函式去把這個單元正方形移回來,讓它處於可視截錐體的範圍內,詳見函式5.
5.gltranslatef(float x, float y, float z) ———— 很明顯這是讓物體在xyz軸上進行平移,比如我們可以設定成gltranslate(0, 0, -7),也就是讓它沿著z軸反方向平移7個單位,也就是離我們的眼睛往後7個單位,這樣就可以處在我們的視覺當中了。另外還有一點就是這個透視是和正向正投射相悖的,我們可以通過旋轉乙個角度來證實這一點,詳見函式6。
6.glrotatef(float angel, float x, float y, float z) ———— angel對應著要旋轉的角度,xyz決定旋轉的軸,比如當我們設定成(30,0, -1, 0),也就是讓它以y軸為旋轉軸,旋轉30度。和對正向正投影做這個操作不一樣的是,正向正投影的只是直接在螢幕框架上投射,不會讓離我們更遠的物體變小,離我們更近的物體變大,所以看起來也就不夠真實,下圖中的依次是透視投影和正交正投影,可以看出他們的差異。
7.glscalef(float x, float y, float z) —————同樣地,這表示讓我們的物體在xyz軸上進行縮放,比如我們設定成glscale(2, 2, 2),那麼物體就會變成原來的兩倍大。
8.glpushmatrix() ————— 儲存當前矩陣
glpostmatrix() ————— 彈出棧頂的矩陣,並將其刪除
要注意的是,操作順序很重要,也就是gltranslatef、glrotatef、glscalef的順序很重要,決定了物體繞哪個點進行旋轉。
Send函式和Recv函式解析
分類 linux網路程式設計 2010 09 20 14 20 3625人閱讀收藏 舉報socket sockets 網路伺服器 unix tcp send函式和recv函式解析 1.send函式 int send socket s,const char far buf,int len,int fl...
Send函式和Recv函式解析
send函式和 recv 函式解析 1.send函式 i nt send socket s,const char far buf,int len,int flags 不論是客戶 端還是伺服器 端應用程式都用send 函式來向 tcp連線的另一端傳送資料。客戶端程式一般用send 函式向伺服器傳送請求...
解析函式和調和函式
解析函式 解析函式的概念 如果函式f z 不僅在z0 處可導,而且在 z0的某個鄰域內的任一點可導,則稱 f z 在z0 解析。如果函式 f z 在區域d 內任一點解析,則稱 f z 在區域d 內解析。由定義知,函式在區域d 內解析與在區域 d內可導是等價的。但函式在一點解析與在該點可導是絕對不等價...