首先宣告自己是這方面的小白,希望大神可以對有問題以及可以優化的地方提出來。也歡迎指出不足和吐槽。希望幫到小白。
不多廢話,好先上這一節的效果圖。
;// 繪製正方體
void
drawbox()
// 繪製函式
void
display()
void
resize
(int w,
int h)
// 滑鼠事件
void
mouse
(int button,
int state,
int x,
int y)
else
mousedown =
false;}
// 滑鼠移動事件
void
mousemotion
(int x,
int y)
}int
main
(int argc,
char
* ar**)
可以看到**非常的簡潔,這是根據國外的乙個示例**縮減的。關鍵就是並不是改變了攝像頭的視角(glulookat),而是直接在繪製之前就旋轉座標系,讓之後繪製的東西都直接旋轉了。讓我們看起來像攝像頭視角在動(我只能說真cool)。
opengl專欄:
OpenGL滑鼠滑動實現視角旋轉
思路 攝像機圍繞著中心點,以固定的半徑做圓周運動。記錄滑鼠在螢幕上滑動的距離,縮小到適合的比例,然後計算出移動後的攝像機的x和z座標。從而達到攝像機旋轉,即視角旋轉的目的。這裡最關鍵的地方在於lookat矩陣,lookat矩陣是一種特殊型別的view矩陣,通過直接賦值給view矩陣,然後把view傳...
Unity 滑鼠控制模型旋轉(360度)
任意旋 起始位置 private vector3 startposition 滑鼠按下的之前位置 private vector3 previousposition 滑鼠按下之後的滑動距離 private vector3 offset 滑鼠抬起後距離初始位置的位置 private vector3 fi...
OpenGL 滑鼠互動
1.檢測滑鼠的click glutmousefunc void func int button,int state,int x,int y button glut left button,glut middle button,blut right button state glut down,glu...