##week12-1_glm_gundam_handA_handB
先設定好環境
0. freeglut 安裝(拉到桌面),再把 lib的 libfreeglut.a 複製成 libglut32.a
1.安裝OpenCV
2.重開CodeBlocks,Setting-Compiler 要改3個地方
(1)C:\OpenCV2.1\include
(2)C:\OpenCV2.1\lib
(3)cv210 cxcore210 highgui210
接下來再把 GitHub的程式倉庫下載下來,
week11-2_obj_gundam_opencv_texture_lighting 拿來改
1.week11-2複製目錄,改目錄名為week12-1_glm_gundam_handA_handB
2.把.cbp檔,改檔名為week12-1_glm_gundam_handA_handB
3.用Notepad++開.cbp檔,改Title為week12-1_glm_gundam_handA_handB,並把對應目錄改好
4.CodeBlocks File-Open week12-1_glm_gundam_handA_handB
要修改的程式:把今天考試的T-R-T設定正確
技巧1:把擋住的,註解掉
技巧2:把用來對照的座標原點,用glutSolidSphere(0.1,30,30);
3.glTranslatef(0.3,0.3,0);
2.glRotatef(angle++,0,0,1)///(2)對z轉
1.glTranslatef(0,-0.3,0);
##week12-2_glm_gundam_upper_lower
要把上手臂、下手臂 切好、讀入
Maya開起來,把handA.obj讀入,切割出upperA.obj和lowerA.obj
再把week12-1_glm_gundam_handA_handB複製成week12-2_glm_gundam_upper_lower
裡面的.cbp改檔名成week12-2_glm_gundam_upper_lower
再用Notepad++開.cbp檔,改Title為week12-2_glm_gundam_upper_lower,並把對應目錄改好
最後把 upperA.obj upperA.mtl upperB.obj upperB.mtl 放到
week12-2_glm_gundam_upper_lower的目錄裡
加程式
```cpp
GLMmodel *upperA = NULL;
GLMmodel *lowerA = NULL;
再把 void drawHandA()複製修改成 void drawUpperA()和void drawUpperB()
更改程式讓手臂前後擺動
```cpp
float angle = 0, da=1; ///加這行, 讓它轉動
void display()
{
angle+=da;
if(angle>90) da=-1;
if(angle<0) da=+1;
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glDisable(GL_TEXTURE_2D);
///myBody();先註解掉身體
///glutSolidSphere(0.1,30,30);
glEnable(GL_TEXTURE_2D);
glColor3f(1,1,1);
///先全刪
drawUpperA();///(3)上手臂放好
glPushMatrix(); ///加這行, 讓它轉動
glTranslatef(-0.02,-0.09,0);///(3)再掛到上手臂的位置
glRotatef(angle,1,0,0);///(2)z軸轉
glTranslatef(0,-0.21,0);///(1)
drawLowerA();
glPopMatrix(); ///加這行, 讓它轉動
glutSwapBuffers();
}
##week12-3_glm_gundam_keyboard_angleID_mouse_motion_angle
1.把week12-2_glm_gundam_upper_lower複製成
week12-3_glm_gundam_keyboard_angleID_mouse_motion_angle
2.利用mouse motion來改變angle
```cpp
float angle = 0, da=1; ///剛剛的舊程式碼
void motion(int x,int y){//加入mouse motion對應函式
angle=y;//當我們的mouse motion時,y座標 對應角度
}
void display()
{
angle+=da;//不要自己動,要用mouse motion來動
if(angle>90) da=-1;
if(angle<0) da=+1;
```
再int main()裡,加入 glutMotionFunc(motion);
用滑鼠控制轉動
沒有留言:
張貼留言