opengl鼠標(biāo)交互 OpenGL的控制機(jī)理:OpenGL是怎么實(shí)現(xiàn)動(dòng)畫(huà)的控制的?
OpenGL的控制機(jī)理:OpenGL是怎么實(shí)現(xiàn)動(dòng)畫(huà)的控制的?OpenGL通過(guò)模型視圖矩陣(GLModelview)控制要繪制的對(duì)象的位置。繪制的環(huán)境必須具有坐標(biāo)。當(dāng)你畫(huà)汽車時(shí),設(shè)置汽車相對(duì)于這個(gè)坐標(biāo)的
OpenGL的控制機(jī)理:OpenGL是怎么實(shí)現(xiàn)動(dòng)畫(huà)的控制的?
OpenGL通過(guò)模型視圖矩陣(GLModelview)控制要繪制的對(duì)象的位置。繪制的環(huán)境必須具有坐標(biāo)。當(dāng)你畫(huà)汽車時(shí),設(shè)置汽車相對(duì)于這個(gè)坐標(biāo)的坐標(biāo),汽車就可以被畫(huà)出來(lái)了。然后控制,如gltranslate(x,y,z)是沿x,y,z軸平移的,如果你想用鍵盤控制,如D鍵控制沿x軸平移,你可以在keyboard()函數(shù)中寫
開(kāi)關(guān)(key){case“D”:x=x1 break}],這樣你按D,汽車就會(huì)沿x軸移動(dòng)1個(gè)單位的距離,感覺(jué)移動(dòng)。其原理是通過(guò)鍵盤和程序交互,通過(guò)改變模型視圖矩陣的值來(lái)控制汽車的坐標(biāo)位置。當(dāng)然,實(shí)現(xiàn)這個(gè)功能需要很多opengl函數(shù)和命令。另外,我們必須使用雙緩沖區(qū)來(lái)達(dá)到更好的動(dòng)畫(huà)效果。
強(qiáng)烈建議您仔細(xì)閱讀OpenGL編程指南(第七版)(紅皮書(shū))
在OpenGL中程序如何感知用戶的輸入動(dòng)作?
如果您使用的是Win32編程,請(qǐng)檢查在Win32中獲取用戶鍵盤和鼠標(biāo)事件的功能,以獲取用戶輸入的內(nèi)容。如果是QT,QT還具有鼠標(biāo)和鍵盤事件采集功能。有了這些,你就可以互動(dòng)了。您可以根據(jù)用戶的操作進(jìn)行響應(yīng),如單擊左右按鈕。