相機CAMERA固定在原點,通過旋轉和平移在世界坐標中移動所有模型
相機設定示例:
- glMatrixMode(GL_MODELVIEW);設定模型視圖矩陣
- glLoadIdentity()將觀察矩陣載入單位矩陣,相機位於原點(0,0,0), 朝向為負Z軸 (0,-90,0)
- glRotatef(AngleZ,0f,0.0f,1.0f); 橫搖/側滾角繞Z軸旋轉
- glRotatef(AngleY+90,0f,1.0f,0.0f); 偏航/航向角繞Y軸旋,補償90度
- glRotatef(AngleX,0f,0.0f,0.0f); 傾斜/俯仰角繞X軸旋轉
- glTranslatef(-posX,-posY,-posZ);移動模型坐標
視圖變換(VIEW transformation) | 簡介 |
void glRotatef (
GLfloat angle, GLfloat x, GLfloat y,GLfloat z); |
旋轉
Angle:旋轉角度 x,y,z:軸向量 |
void glTranslatef (
GLfloat x, GLfloat y, GLfloat z); |
平移
x,y,z:偏移向量 |
旋轉 | 軸 | 角 |
glRotatef(AngleZ,0.0f,0.0f,1.0f); | Z軸 | 橫搖/側滾 |
glRotatef(AngleY+90,0.0f,1.0f,0.0f); | Y軸補償+90度 | 偏航/航向 |
glRotatef(AngleX,1.0f,0.0f,0.0f); | X軸 | 傾斜/俯仰 |
平移 | 簡介 |
glTranslatef(-posX,-posY,-posZ); | 反方向移動模型坐標 |
相機移動程式演示:下載
- 按UP/DOWN鍵前後移動
- 按LEFT/RIGHT鍵左右旋轉,繞Y軸旋轉
- 小鍵盤4/6繞Z軸旋轉
- 小鍵盤8/2繞X軸旋轉
- 按F1鍵打開幫助
- 按ESC鍵相機返回原點