2019年3月8日 星期五

Week03_小葉我想打、打電腦圖學!








今天又是個使用程式的一天

再次回到 這個 網站,一樣下載 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 軸加負號,就會發生上下顛倒的問題

打完之後,就可以用滑鼠控制了呢!


雖然圖片看不出來,但如果實際做一次,就會發現是真的呢!

______________



終於把部落格更新,也把作業做完了,好爽喔





沒有留言:

張貼留言