OpenGL 滑鼠控制旋轉(四)

2021-09-29 07:56:10 字數 970 閱讀 9246

首先宣告自己是這方面的小白,希望大神可以對有問題以及可以優化的地方提出來。也歡迎指出不足和吐槽。希望幫到小白。

不多廢話,好先上這一節的效果圖。

;// 繪製正方體

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...