今天又是個
再次回到 這個 網站,一樣下載 data、win32、glut32.dll
將data、win32解壓縮,開啟
Transformation.exe
就可以測試移動、旋轉、變形啦!
______________
這次我們依舊要請出茶壺先生來幫忙示範啦
一樣的配方,不一樣的味道
是的,我們今天要用的程式碼是這句
glTranslatef(0.2,0.2,0); //(x,y,z)
Translate是移動的意思,而f則是浮點數,所以也就知道我們要幹嘛了
當然是要原諒移動它啦!
不過呢,僅僅打這樣只會有BUG,所以會在轉換視窗時不斷移動,甚至多出一個
茶壺先生你不是忍者啊......(。ŏ_ŏ)
(你管我)
沒事!這時我們只要加兩個保鑣,就能輕鬆固定住茶壺先生
glPushMatrix(); //這是利用備份矩陣保護的
glPopMatrix(); //這是利用還原矩陣保護的
現在我們請出了兩位保鑣,讓我們看結果,GOGOGO!
雖然和上面的圖很像,但......
喔喔!真的沒有變忍者了!茶壺先生變得很專一了呢!
______________
經過一周茶壺先生的抗議,我們終於要來看如何使茶壺先生跟著我們的滑鼠移動啦!
(快讓我動!)
茶壺先生很心急呢,我們趕緊來看小葉教的程式碼吧
前面也有提到Translate是移動的意思,
那麼,以未知數 x 和 y 來執行等等移
動的變動座標,而因為是平面的緣故,
z設為0
因為要不停更新 x 和 y 值,所以多設立
一個函數來執行
因為有新的函數,當然在 int main 中也
要加一行執行碼
講解完了,重點在於,x y 要如何使圖和滑鼠移動呢?
只有 x y 的話,一移動茶壺先生就飛走了,而且是一去不復返
所以,我們必須把 x y 換算正確
( x - 中間值 ) / 最大值 . 0
★若是沒有替 y 軸加負號,就會發生上下顛倒的問題
打完之後,就可以用滑鼠控制了呢!
雖然圖片看不出來,但如果實際做一次,就會發現是真的呢!
______________
終於把部落格更新,也把作業做完了,好爽喔
沒有留言:
張貼留言