2024年4月18日 星期四

week09電腦圖學

 Week09

week09-0_sample

1. 安裝 freeglut 再把 lib\libfreeglut.a 複製成 libglut32.a

2. File-New-Project , GLUT專案 week09-0_sample

複習上週的 week08-3_glm_gundam_opencv_texture_lighting

1. 要把環境設好 : OpenCV

2. 桌面有葉正聖上課用軟體 OpenCV-2.1.0

3. 小心 : Add PATH

4. 小心 : 目錄不要改

5. 要重開CodeBlocks

6. CodeBlocks : Setting-Compiler 裡 , 要設 3 個地方
    c:\OpenCV2.1\include
    c:\OpenCV2.1\lib



    cv210 cxcore210 highgui210


7. 要把上週的 GitHub 倉庫複製下來
    安裝 Git , 開啟 Git Bash 小黑
    cd desktop
    git clone  https://github.com/jsyeh/2024graphicsa
    cd 2024graphicsa
    start .



8. 把上週的 week08-3_glm_gundam_opencv_texture_lighting 開起來
    File-Open , 到那個目錄 , 點開 .cbp (codeblock project檔)
    Build&Run 就可以


把剛剛的專案變成 week09-1_glm_gundam_opencv_texture_lighting

1. 把剛剛的專案 , 先關起來 Close Project (這樣才不會被鎖)

2. 目錄 : 把整個 week08-3_glm_gundam_opencv_texture_lighting 複製到桌面的 week09-1_glm_gundam_opencv_texture_lighting


3. 檔案 : 把新目錄裡的專案檔 week08-3_glm_gundam_opencv_texture_lighting.cbp 改檔名成 week09-1_glm_gundam_opencv_texture_lighting.cbp


4. 再把專案的 Title 改成 week09-1_glm_gundam_opencv_texture_lighting


5. 再用 CodeBlocks File-Open 開它 , 就好了


week09-2_glutSolidTeapot__glutSolidCube_glutSolidSphere

1. File-New-Project , GLUT專案

2. 貼上11行程式碼

    #include <GL/glut.h>
    void display()
    {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
    }
    int main(int argc, char*argv[])
    {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week09 Microsoft Visual Studio");
    glutDisplayFunc(display);
    glutMainLoop();
    }

3. 換畫另外3個, 左上 , 上 , 右上 , 使用期中考教的程式碼


    #include <GL/glut.h>
    void display()
    {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    ///glutSolidTeapot(0.3);
    ///glutSolidCube(0.3);
    glutSolidSphere(0.3, 30, 30);
    glutSwapBuffers();
    }
    int main(int argc, char*argv[])
    {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week09 Microsoft Visual Studio");
    glutDisplayFunc(display);
    glutMainLoop();
    }


    #include <GL/glut.h>
    void display()
    {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
                glTranslatef(-0.5, +0.3, 0);
                glutSolidTeapot(0.3);
            glPopMatrix();
            glPushMatrix();
                glTranslatef(+0.0, +0.3, 0);
                glutSolidCube(0.3);
            glPopMatrix();
    glPushMatrix();
                glTranslatef(+0.5, +0.3, 0);
                glutSolidSphere(0.3, 30, 30);
            glPopMatrix();

    glutSwapBuffers();
    }
    int main(int argc, char*argv[])
    {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week09 Microsoft Visual Studio");
    glutDisplayFunc(display);
    glutMainLoop();
    }

week09-3_glutWireTeapot__glutWireCube_glutWireSphere

1. File-New-Project , GLUT專案

2. 貼上 week09-3 的程式

3. 修改程式碼


    #include <GL/glut.h>
    void display()
    {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
                glTranslatef(-0.5, +0.3, 0);
                glutSolidTeapot(0.3);
            glPopMatrix();
            glPushMatrix();
                glTranslatef(+0.0, +0.3, 0);
                glutSolidCube(0.3);
            glPopMatrix();
    glPushMatrix();
                glTranslatef(+0.5, +0.3, 0);
                glutSolidSphere(0.3, 30, 30);
            glPopMatrix();

            glPushMatrix();
                glTranslatef(-0.5, -0.3, 0);
                glutWireTeapot(0.3);
            glPopMatrix();
            glPushMatrix();
                glTranslatef(+0.0, -0.3, 0);
                glutWireCube(0.3);
            glPopMatrix();
    glPushMatrix();
                glTranslatef(+0.5, -0.3, 0);
                glutWireSphere(0.3, 30, 30);
            glPopMatrix();

    glutSwapBuffers();
    }
    int main(int argc, char*argv[])
    {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week09 Microsoft Visual Studio");
    glutDisplayFunc(display);
    glutMainLoop();
    }

















沒有留言:

張貼留言