OpenGL之相機-旋轉和平移

OpenGL之相機-旋轉和平移

相機CAMERA固定在原點,通過旋轉和平移在世界坐標中移動所有模型

相機設定示例:

  1. glMatrixMode(GL_MODELVIEW);設定模型視圖矩陣
  2. glLoadIdentity()將觀察矩陣載入單位矩陣,相機位於原點(0,0,0), 朝向為負Z軸 (0,-90,0)
  3. glRotatef(AngleZ,0f,0.0f,1.0f); 橫搖/側滾角繞Z軸旋轉
  4. glRotatef(AngleY+90,0f,1.0f,0.0f); 偏航/航向角繞Y軸旋,補償90度
  5. glRotatef(AngleX,0f,0.0f,0.0f); 傾斜/俯仰角繞X軸旋轉
  6. 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); 反方向移動模型坐標

相機移動程式演示:下載

  1. 按UP/DOWN鍵前後移動
  2. 按LEFT/RIGHT鍵左右旋轉,繞Y軸旋轉
  3. 小鍵盤4/6繞Z軸旋轉
  4. 小鍵盤8/2繞X軸旋轉
  5. 按F1鍵打開幫助
  6. 按ESC鍵相機返回原點

評論