2024年3月7日 星期四

BK Week03

#Week 03

##week03_mouse

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

1. File-New-Project, GLUT專案 week03_mouse, 設定桌面glut資料夾

2. 貼上10行程式碼

3. 加3行 mouse

4. 跑出茶壺可以點擊, 會出現兩個 "Hellow Mouse"


5. 把 printf 改成 "printf("%d %d %d %d\n",button, state, x, y);"
    a. button ->0:左鍵, 1:中鍵, 2:右鍵
    b. state->按下去是0, 拿起來是1
    c. x->x座標
    c. y->y座標


6. 當 "GLUT_DOWN" 時 列出點擊處座標之程式碼


##week03_mouse_glTranslatef
1. 開一新專案 " week03_mouse_glTranslatef "
2. 讓茶壺 "移動"



##試著理解 glRotatef (角度, x, y, z) 的參數
1. 可以利用右手比 "讚" 來理解
2. 轉動軸, 就是讚的拇指;轉動方向, 就是其他手指的轉動方向
3. 對y軸轉動, 簡單比個讚
4. 對x軸轉動, 要把拇指向右
5. 對-y軸轉動, 就是比個倒讚
6. 最難的是z軸, 是拇指指著自己鼻子的方向 

##week03_mouse_glRotatef
1. 增加 " float angle = 0; "
2. display裡面增加 "glRotatef (angle, 0, 0, 1) " 讓他用Z軸去轉
3. 再來增加
     void motion(int x, int y)
    {
        angle=x;
        display();
    }
    連結前面angle, "在滑鼠點下去時" 開始轉動
4. 最後 int main() 增加 "glutMotionFunc(motion); " 這是 Motion 的細節


##week03_mouse_translate_rotate
1. 先增加
    void keyboard(unsigned char key, int x, int y)
    {
        if(key=='e') method = 1;///轉動
        if(key=='w') method = 2;///移動
    }
2.然後再增加其他細節







沒有留言:

張貼留言