2024年2月29日 星期四

電腦圖學 Week02

點、線、面、色彩

1. 下載課本的範例 https://jsyeh.org/3dcg10 windows.zip 及 data.zip

2. windows.zip 解壓縮, data.zip 解壓縮拉到windows資料夾

3. 執行 Shapes.exe

    滑鼠右鍵, 在右邊可切換 點、線、面

    滑鼠右鍵, 在左邊可切換大頂點

    滑鼠左鍵, 在右邊可按「綠色數字」上下調整

4. 左邊設成 Toogle colors at vertices(每個頂點一個顏色), 切換成TRIANGLES


今天第一個程式:week02_glut_color_teapot

1. 從上週程式碼加一行

2. moodle下載 freeglut 拖到桌面,就裝好了

3. 把桌面\freglut\lib\libfreeglut.a 複製成 libglut32.a

4. CodeBlocks開GLUT專案, 目錄選桌面, 專案名取week02_glut_color_teapot

5. GLUT要選 桌面的 freeglut

6. 執行時跳出上週的程式

7. 左邊 Sources > main.cpp 點開, 把上週的10行貼上來

8. 第五行加上glColor3f(1,1,0);

9. 多新增一個小茶壺, 用小畫家的滴管功能換成安尼亞的顏色

畫三角形:Week02_glut_color_triangle

1.  CodeBlocks開GLUT專案, 取名為week02_glut_triangle

2. 複製上個程式碼, 刪掉5~8行, 改成

    glBegin(GL_POLYGON);

    glColor3f(r,g,b);顏色 glVertex2f(x,y);座標點

    glEnd();

用小畫家, 幫我們找到頂點座標

1. 開啟小畫家, 設大小為400*400, 把圖片放上去

2. 小畫家的座標裡, 左上角是0,0, 右下角是 400, 400 

3. OpenGL 座標預設中間(0,0), 右邊是 +1, 左邊是-1, 上面是+1, 下面是-1

4. glVertex2f ((x座標-200)/200.0,-(y座標-200)/200.0)

用for迴圈/cos/sin畫圓

1. CodeBlocks開GLUT專案, 取名為week02_glut_cos_sin_circle

2. for(float a=0; a<3.1415*2; a+=0.1){

            glVertex2f(cos(a), sin(a));

      }


用三個圓畫米奇

1. 把上個程式碼圓的部分用成函示, 加上半徑和x,y座標

2. void myCircle(float x, float y, float r)

    {

        glBegin(GL_POLYGON);///開始畫多邊形

            for(float a=0; a<3.1415*2; a+=0.1){

            glVertex2f(r*cos(a)+x, r*sin(a)+y);

            }

        glEnd();

    }

    void display()

    {

        myCircle(0.5, 0.5, 0.3);

        myCircle(-0.5, 0.5, 0.3);

        myCircle(0, -0.1, 0.6);

        glutSwapBuffers();

    }













沒有留言:

張貼留言