利用Opengl實現類似於角色漫遊的場景

這是圖形學第3次練習,利用gluLookAt()函數實現視點跟蹤。

我繪製了一個模擬地球,觀察點確定在地球的“後方”,每次變換方向時,觀察點也隨之變換。

user_eye[0] = pos[0] + ((float)sin(rad))*5;      

user_eye[2] = pos[2] + ((float)cos(rad))*5;

其中,user_eye[]是觀察點,pos是地球的位置,也是看的位置,通俗理解就是眼睛一直盯着地球。

 

根據旋轉的角度和速度來確定在Z軸上移動位置:

static GLfloat PI = 3.1415926;

rad = float(PI*(angle_Y)/180.0f);         // 計算弧度值

pos[2] += (float)cos(rad) * moveSpeed;         

pos[0] += (float)sin(rad) * moveSpeed; 

其中 angle_Y是控制地球左右旋轉的角度,moveSpeed是每次移動的步長

 

最後

gluLookAt(user_eye[0] , user_eye[1], user_eye[2],     
  pos[0], pos[1], pos[2],           
  0.0f, 1.0f, 0.0f);

 

具體代碼下載請到:

 http://download.csdn.net/source/1178486

下載~

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