2024年4月25日 星期四

罐頭's 電腦圖學日記 Week10

  week10  

##week10-1_glutWireCube_myBody_myArm

0. 桌面安裝 freeglut , 把 lib 的 libfreeglut.a 複製成 libglut32.a

1. File-New-Project , GLUT 專案 week10-1_glutWireCube_myBody_myArm

2. 貼上上週的 week09-3_glutWireTeapot_glutWireCube_glutWireSphere 的程式碼

3. 要把 void display() 改寫一下 , 呼叫 myBody() myArm()


##week10-2_rotate_myArm

1. File-New-Project , GLUT 專案 week10-2_rotate_myArm

2. 貼上 week10-1 的程式

3. 外面貼上 float angle = 0; //旋轉的角度

4. 在 main() 加上 glutIdleFunc(display); // 有空就旋轉

5. 在display() 裡, myArm() 的前後, 要加上            

    glPushMatrix();   glPopMatrix();   glRotatef(angle++,0,0,1);

##week10-3_rotate_translate_myArm

1. File-New-Project , GLUT 專案 week10-3_rotate_translate_myArm

2. 貼上 week10-2 的程式

3. 加上 glTranslatef(0.15, 0, 0);


##week10-4_translate_rotate_translate_myArm

1. File-New-Project , GLUT 專案 week10-4_translate_rotate_translate_myArm

2. 貼上 week10-3 的程式

3. 加上最後一行 glTranslatef(0.3, 0.3, 0); 放最上面 掛上去



##week10-5_TRT_TRT_myArm

1. File-New-Project , GLUT 專案 week10-5_TRT_TRT_myArm

2. 貼上 week10-4 的程式

3. 把整套 程式碼插入

        glPushMatrix();

            glTranslatef(0.3, 0.3, 0); ///3. 掛到肩上

            glRotatef(angle++,0,0,1); /// 2.旋轉的角度

            glTranslatef(0.15 , 0, 0);///1. 把旋轉中心,放在畫面的正中心

            myArm();///我的手臂

glPopMatrix();



##week10-6_left_right_myArm

1. File-New-Project , GLUT 專案 week10-6_left_right_myArm

2. 貼上 week10-5 的程式



##week10-7_mouse_motion_angle_myArm

1. File-New-Project , GLUT 專案 week10-7_mouse_motion_angle_myArm

2. 貼上 week10-6 的程式

3. 想要用 mouse motion 來操控 , 所以 angle++ 都改成 angle (不要++)

4. 在 main() 加 glutMotionFunc(motion);

5. 加一個 void motion(int x, int y) 函式

    ```cpp

    void motion(int x, int y){

        angle = x;

        glutPostRedisplay(); //告訴GLUT , 貼上便利貼 , 請GLUT有空時 ,  就要重畫畫面

    }

    ```



##week10-8_mouse_motion_angle_2_myArm

1. File-New-Project , GLUT 專案 week10-8_mouse_motion_angle_2_myArm

2. 貼上 week10-7 的程式

3. 把 display() 裡面 左邊的angle 改成 -angle (讓左右的角度,正負相反)




##week10-9_PlaySound

1. File-New-Project , GLUT 專案 week10-9_PlaySound

2. 貼上 week10-8 的程式

3. 在 #include 的地方 , 加上 #include<windows,h> 或 #include<mmsystem.h> 

4. 在 mian() 的第1行 , 加入 PlaySound("C:/horse.wav" , NULL , SND_ASYNC );

    (要用wav檔 , 不可以用 MP3 )

5. 把老師傳給你的 horse.wav 放在 C: 根目錄裡







沒有留言:

張貼留言