2024年4月25日 星期四

探索比奇堡的十大奧秘 10

 week10-1_glutWireCube_myBody_myArm

貼上周的glutWireCube_myBody_myArm

Download raw file 可以下載檔案,讓中文字跑出來,github會認為中文是亂碼

void myBody(){


glPushMatrix();

        glColor3f(1,0,0);///紅色

        glutWireCube(0.6);///myboby()

    glPopMatrix();

}

void myArm(){

    glPushMatrix();

        glColor3f(0,1,0);///綠色

        glScalef(1,0.4,0.4);

        glutWireCube(0.3);///myboby()

    glPopMatrix();

}


week10-2_rotate_myArm

cobe week10-1_glutWireCube_myBody_myArm
                                                                    glRotatef(angle++,0,0,1);
glutIdleFunc(display);
                                                            就可以讓物體旋轉加上旋轉




week10-3_rotate_translate_myArm

        glTranslatef(0.15,0,0);///(右移)把旋轉中心,放在畫面中心


week10-4_translatef_rotate_translate_myArm
T-R-T 關節轉動

再加一個glTranslatef(0.3,0.3,0)///掛到肩上
從中間移動到右上角



week10-5_TRT_TRT_myArm
貼上week10-4程式
再多加
glPushMatrix();
            glTranslatef(0.15,0,0);
            glRotatef(angle++,0,0,1);
            glTranslatef(0.15,0,0);
            myArm();
            glPopMatrix();




week10-6_left_right_myArm


glPushMatrix();
        glTranslatef(-0.3,0.3,0);///掛到肩上
        glRotatef(angle++,0,0,1);///旋轉
        glTranslatef(-0.15,0,0);///(右移)把旋轉中心,放在畫面中心
myArm();///我的手臂
        glPushMatrix();
            glTranslatef(-0.15,0,0);
            glRotatef(angle++,0,0,1);
            glTranslatef(-0.15,0,0);
            myArm();
            glPopMatrix();
glPopMatrix();

加個--號讓他到左邊


week10-7_mouse_motion_angle_myArm

void motion(int x,int y){
    angle = x;///加上 mouse motion 
    glutPostRedisplay();///告訴GLUT,貼上便利貼,問GLUT有空時,就要重劃畫面
}
把所有的angle++改成angle就不會轉動
可以利用滑鼠拖曳



week10-8_mouse_motion_angle_2_myArm

改左邊angle改成-angle就可以對齊

week10-9_PlaySound


#include <mmsystem.h>

 PlaySound("C:/horse.wav",NULL, SND_ASYNC);
可以播音樂





















沒有留言:

張貼留言