2024年6月13日 星期四

week12

 ##week12-1_glm_gundam_handA_handB

0.安裝freeglut,把lib\libfreeglut.a複製成libglut32.a

1.File-New-Project,GLUT專案week12-1_glm_gundam_handA_handB

2.先安裝openCV,CodeBlocks要重開
3.要改環境Search directories->Compiler 增加 C:\OpenCV2.1\include
4.Search directories->Linker 增加 C:\OpenCV2.1\lib
Linker settings-> 增加 cv210、cxcore210、highgui210
5.載git hub把第11周的11-2 抓下來就可以了

6.myBody();刪掉,改成glutSolidSphere(0.1,30,30);
7.glRotatef(angle++,0,0,1);把旋轉刪掉不讓轉動
8.glRotatef(angle++,0,0,1);加回這個讓他轉動
9.把handB的程式碼加進去 
10.改個glTranslatef()的座標

##week12-2_glm_gundam_upper_lower

用Notepad++ 改名稱改成week12-2_glm_gundam_upper_lower

多加兩行程式碼
GLMmodel * upperA = NULL;
GLMmodel * lowerA = NULL;

void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
      glDisable(GL_TEXTURE_2D);///把貼圖先功能關掉,不然手會被擋住
      ///myBody();
    glutSolidSphere(0.1,30,30);
    glEnable(GL_TEXTURE_2D);///再把貼圖功能開起來,才能draw
    glColor3f(1,1,1);
    
    drawUpperA();///(3)上手臂放好
    
    glPushMatrix(); ///(0)
        glTranslatef();///(3)再掛到上手臂的位置
        glRotatef(angle++,0,0,1);///(2) z軸轉
        glTranslatef(0,-0.2,0);///(1)
        drawLowerA(); ///(0)
    glPopMatrix(); ///(0)
    glutSwapBuffers();///(0)
}


angle += da; 一直加da到一定角度就彈回去
    if(angle>90) da=-1; 到90度就回彈,da會變成-1
    if(angle<0) da=+1;到0度就回彈,da會變成+1


week12-3_glm_gundam_keyboard_angleID_mouse_motion_angle

glPushMatrix();
glRotatef(angle,0,0,1);
gltranslatef(0,-0.07,0);
    drawUpperA();///(3)上手臂放好

     glPushMatrix(); ///(0)
         glTranslatef(-0.02,-0.09,0);///(3)再掛到上手臂的位置
         ///glRotatef(angle,1,0,0);///(2) z軸轉
         glTranslatef(0,-0.21,0);///(1)
         drawLowerA(); ///(0)
     glPopMatrix(); ///(0)
    glPopMatrix();

    glutSwapBuffers();///(0)

沒有留言:

張貼留言