2024年5月6日 星期一

賀week12_電腦圖學


電腦圖學 2024-05-06 Week12
1. 小考: T-R-T 轉動
2. 主題: 模型的關節轉動
3. 主題:鍵盤挑選關節、滑鼠改變角度

 ##week12-1_obj_gundam_hand1_hand2

準備工作
0.安裝 freeglut, 把lib\libfreeglut.a複製成libglut32.a
1.OpenCV 要裝起來,要記得勾 Add PATH, 不要改目錄,再重開CodeBlocks
2.把 CodeBlocks Setting-Compiler 加入3個設定:
-Search directories 的compiler要設C:\OpenCV2.1\include
-Search directories 的Linker要設C:\OpenCV2.1\lib
-Linker settings 要設cv210 cxcore210 highgui210

再把GitHub 上週的程式,拿下來(可用 Git 指令、也可用 GitHub 的 Code-Download ZIP)


1.把week11-3_obj_gundam_hand1_hand2 複製到桌面
2.改目錄名 week12-1_obj_gundam_hand1_hand2
3.把 .cbp , 改檔名 week12-1_obj_gundam_hand1_hand2.cbp
4.再用 CodeBlocks 的 File-Open 開啟剛剛的 .cbp 檔





##week12-2_obj_gundam_upper_lower_hand

0.先把 week12-1_obj_gundam_hand1_hand2整個目錄,複製新的目錄,改目錄名 week12-2_obj_gundam_upper_lower_hand 上手臂和下手臂的意思

1.把 .cbp 檔,修改檔名成week12-2_obj_gundam_upper_lower_hand.cbp

2.CodeBlocks 把 .cbp 檔開起來, 把下面的專案 Title改成 week12-2_obj_gundam_upper_lower_hand

要改的程式碼,多宣告2顆指標

\\\GLMmodel*upper=NULL;

\\\GLMmodel*lower=NULL;

再把 drawmodel()複製兩份,分別叫void drawUpper(){...}和 drawLower(){...}

裡面的 pmodel 都改成 upper和 lower檔名改成upper.obj和lower.obj

利用Maya登入後,New 再Import hand1.obj 在把它裁切出下手臂lower.obj 和上手臂upper.obj在匯出,記得島按格式要選 OBJExport 不要選Maya

3. 最後,再改程式碼,先把drawLower()函式調好,在掛到drawUpper()的後面

使用T-R-T的轉動


##week12-3_obj_gundam_body_upper_lower

0.把目錄複製week12-2_obj_gundam_upper_lower_hand複製成week12-3_obj_gundam_body_upper_lower

1.再把裡面的 .cbp改檔名成week12-3_obj_gundam_body_upper_lower.cbp

2.再把Title改成week12-3_obj_gundam_body_upper_lower

3.在開啟CodeBlocks把week12-3_obj_gundam_body_upper_lower.cbp開起來接下來,Maya要切出身體嚕body.obj

最後,程式碼再加上

```cpp

GLMmodel *body =NULL;

再把 void drawBody()複製出來 ,改用body.obj 和 body body body

##week12-4_keyboard_angleID_mouse_motion_angle

0.複製

1.改名

2.Title

在於main()裡,註冊glutKeyboardFunc(keyboard)和

glutMotionFunc(motion)

前面的 float angle=0 ; 改成用陣列來做事 float angle[20];

最後,把display()裡,改成angle[0]和angle[1]


360度轉:



設da!!!!更像機器人!更自然擺動!




沒有留言:

張貼留言