2023年2月22日 星期三

rita - Week02 - 點線面色彩(第一個茶壺)

 第一個程式

    1.開啟codeblocks 17.12
    2.file => new => project 開啟GLUT project
    3.點選點點點選擇桌面  將檔名改成week02_GLUT_first


    (一起補充上禮拜沒寫到的部分)
    下載葉老師上課用軟體freeglut壓縮檔
    將裡面的freeglut檔案複製到桌面
    再將裡頭lib的libfreeglut.a複製並貼上
    將複製的改檔名為libglut32.a
    
    再回到上一步選擇位置

    在原本的程式內複製剪貼再複製
    生成白小茶壺


    
    再改幾行程式碼(改顏色)


    再生成一個比較大的綠色大茶壺

   
     將原綠茶壺改成多邊形三角形

    
    再變更後面多邊形的顏色


第二個程式

    #include <GL/glut.h>
    void display()
    {
        glColor3f(247/255.0,247/255.0,247/255.0);
        glBegin(GL_POLYGON);///開始畫多邊形
            glVertex2f(  1, 1 );
            glVertex2f( -1, 1 );
            glVertex2f( -1,-1 );
            glVertex2f(  1,-1 );///頂點Vertex
        glEnd();///結束畫

        glColor3f(244/255.0,209/255.0,33/255.0);
        glBegin(GL_POLYGON);///開始畫多邊形
            glVertex2f( (45-100)/100.0, -(134-100)/100.0);
            glVertex2f( (36-100)/100.0, -(171-100)/100.0 );
            glVertex2f( (108-100)/100.0, -(179-100)/100.0 );
            glVertex2f( (104-100)/100.0, -(117-100)/100.0 );
            ///口訣:減一半,除一半,y變負號
        glEnd();///結束畫

        glutSwapBuffers();///step01-1請GLUT把畫面swap送到顯示的地方
    }

    int main(int argc, char *argv[])
    {   ///上面是特別的main()函式 有很多參數
        glutInit(&argc, argv);///把GLUT開起來
        glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///這行把顯示的模型設定
        glutCreateWindow("GLUT Shapes");///要開視窗
        glutDisplayFunc(display);///要顯示的對應函式
        glutMainLoop();///最後用main迴圈,壓在最後面
    }
       利用第一個程式修修改改生成皮卡丘的黃色小肚肚
       先利用小畫家滴管的部分 吸取我要的顏色部分 左下角可看座標 並換算





第三個程式

    ///week02-3_circle_cos_sin
    #include <GL/glut.h>
    #include <math.h>///cos() 和 sin()要用
    void myCircle(float r,float x,float y)
    {
       glBegin(GL_POLYGON);///step02-1開始畫多邊形
        for(float a = 0; a<2*3.1415926;a+=0.01)
        {
            glVertex2f(  r*cos(a)+x, r*sin(a)+y );
        }
        glEnd();///step02-1結束畫
    }
    void display()
    {
        glColor3f(1,0,1); myCircle( 0.6, 0, 0 );///正中間

        glColor3f(1,0,0); myCircle( 0.3, 0.5, 0.5 );///右上角
        glColor3f(0,1,0); myCircle( 0.3,-0.5, 0.5 );///左上角
        glColor3f(1,1,0); myCircle( 0.3,-0.5,-0.5 );///左下角
        glColor3f(0,0,1); myCircle( 0.3, 0.5,-0.5 );///右下角

        glutSwapBuffers();///step01-1請GLUT把畫面swap送到顯示的地方
    }
    int main(int argc, char *argv[])
    {   ///上面是特別的main()函式 有很多參數
        glutInit(&argc, argv);///把GLUT開起來
        glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///這行把顯示的模型設定
        glutCreateWindow("GLUT Shapes");///要開視窗
        glutDisplayFunc(display);///要顯示的對應函式
        glutMainLoop();///最後用main迴圈,壓在最後面
    }
    五個圓圈圈出現
    
        當週作業作品









沒有留言:

張貼留言