2015年6月4日 星期四

week15_全身關節_鍵盤滑鼠操控_張育睿

電腦圖學 week15
今日目標:
(1)複習上週的T-R-T
(2)期中作品
(3)建出全身關節
(4)鍵盤、滑鼠操控動作
(5)存檔、play播放

1.和之前一樣可以選擇開啟 opengl 或者右上角的 貝殼 都可以做
   我們這次選擇 opengl 來做


2.今天會用到的程式碼是桌面上的這個檔案,案右鍵讓它在記事本中開起來,就可以直接在        codeblocks上改今天的程式


3.這是最原始的版本 robot_0,只能用滑鼠移動來控制兩隻手一起上下


4.接著我們在 main 裡面加上 keyboard,glutKeyboardFunc(keyboard);
   再新增一個 keyboard 函式,用數字鍵 1、2、3、4 控制手臂跟手肘
   當手臂(1、3)動的時候手肘(2、4)會一起被帶動,可是手肘(2、4)獨立動的時候手臂(1、3)是    不會動的
   這就是 robot_1新版本,可以透過數字鍵來分別控制手肘手臂的關節




5.因為 robor_1版本只有單方向的轉動,所以我們現在再新增另外四個數字鍵(5、6、7、8)來      控制這四個關節的反方向移動,這是 robot_1的版本更新


6.再來我們透過把角度 (float angle=0;) 一律換成 (float angle[10];)的方式來改進 robot_1的缺點
   因為 robot_1要透過 8 個按鍵來控制關節轉向,這個方法除了太慢還容易搞混,所以我們把
   angle1換成 angle[1] ...後面的2、3、4也依序改,並利用新宣告的變數 angleID 來更換angle[..]
   的角度,而此時的 robot_2 版本可以利用按按鍵 1、2、3、4 一下後,用滑鼠來控制關節。


7.再來我們就利用 fin、fout 來讀檔跟寫檔案,讓它記錄個關節轉動的角度數據


8.這些數據可以在 freeglut 的 bin 裡面找到它的文字紀錄檔~


   文字紀錄檔如下~~


9.接著我們改一下小的數據呈現方式讓它可以更清楚可以看懂
   還有增加一個 p 鍵來記錄我們叫出程式執行後讓 robot 做的動作,因此在我們做完動作後再    開一次程式執行並按 p 鍵後就可以讓它自己播放剛剛我們做過的動作,就變成了一個小小的    影片。



沒有留言:

張貼留言