OpenGl座標的設置

2011111011553613.jpg

把自己的眼睛當成是照相機,前三個參數表示眼睛的座標,中間三個參數表示要拍照的物體的中心位置,可以理解成焦點吧,

後三個參數表示頭頂的朝向,比如說頭可以歪着(哈哈)。但是我測試過,如果歪的不對,原來的正前方現在已經不是正前方

了,那麼就看不見物體了。舉個例子:

gluLookAt (0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);//這個就表示頭頂是朝着y方向

gluLookAt (0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0);//這個表示頭歪了45度,頭頂朝着(1.0,1.0,0.0)這個方向

2.glScalef() ——模型變換函數 縮放

void glScalef(GLfloat x, GLfloat y, GLfloat z);

模型變換的目的是設置模型的位置和方向,例如可以對模型進行旋轉、移動和縮放,或者聯合這幾種操作。

這個函數表示模型在各軸上是如果進行縮放的。舉個例子:

glScalef (1.0, 2.0, 1.0);//表示y座標值擴大兩倍,這樣原本方的物體就變成長的了。

3.glTranslatef() ——模型變換函數移動

void glTranslatef(GLfloat x, GLfloat y, GLfloat z);

這個函數表示模型是怎樣移動的。舉個例子:

glTranslatef(-1.0,0.0,-2.0);//表示物體沿x負方向移動1.0,沿z軸負方向移動2.0。所以就好像能看見側面一樣

4.glRotatef()——模型變換函數 旋轉

void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);

angle表示旋轉的角度(注意單位不是弧度),(x,y,z)表示轉軸。舉個例子:

glRotatef(45.0, 0.0, 0.0, 1.0);//表示模型沿着(0,0,1)這個軸旋轉45°。

5.glFrustum() ——投影變換函數透視投影

2011111012285841.jpg

前四個參數表示裁剪範圍,後兩個參數(要求爲正數)表示近的面和遠的面離眼睛的距離。有點兒像調焦。裁剪完後拉伸鋪滿整個屏幕。

6.glPerspective() ——投影變換函數透視投影

void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);

第一個參數表示在y方向上的視角度數。個人理解:比如45,表示眼睛和模型中心這個條線與y軸的夾角。

第二個參數表示縱橫比。x/y。比如2表示x、y本來都是1個長度,現在x可以當兩個長度用,這樣,模型就好像被x方向壓縮了一樣。

後兩個參數glFrustum()中後兩個相近。要求都是正數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章