2021年3月8日 星期一

JOJO的電腦圖學_week03

210308  week03

                                                                                                                                              🔔

備份程式的部分

開啟CodeBlocks>File>New>Project...


點選OpenGL project
是OpenGL project!!!

OpenGL project!


OpenGL project!







OpenGL project!

檔名、儲存位置設定

將這行程式碼複製下來
以下是程式碼(PART1)

glBegin(GL_TRIANGLES);


                glColor3f(1.0f, 0.0f, 0.0f);   glVertex2f(0.0f,   1.0f);
                glColor3f(0.0f, 1.0f, 0.0f);   glVertex2f(0.87f,  -0.5f);
                glColor3f(0.0f, 0.0f, 1.0f);   glVertex2f(-0.87f, -0.5f);

            glEnd();



這次要來做個不會轉的三角形!!!

開啟這個檔案

參考week01的步驟


把程式刪減到剩這樣(用打的也行030)


再把剛剛複製的程式碼貼上
就會出現一個不會轉的三角形
(會轉的請參考week01的內容)


對這是解釋


一個茶壺!?

開啟一個GLUT project






名字自由發揮的部分










不要懷疑,點進去就對了!
把中間的部分稍為修改一下(下方有程式碼的解釋)

茶壺get!
以下是程式碼(PART2)(更改部分為豆沙粉色

#include <GL/glut.h>///(0)使用GLUT外掛

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///清空

    glutSolidTeapot(0.3);///實心茶壺(改變大小)
    glutSwapBuffers();///交換兩倍的Buffers
}

int main(int argc, char**argv)///???以前是int main()
{
    glutInit(&argc,argv);///(1)GLUT初始設定
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式
    glutCreateWindow("08160891我是JOJO");///(3)開窗

    glutDisplayFunc(display);///(4)等一下要顯示的函式

    glutMainLoop();///(5)主要迴圈
}

改變茶壺顏色
程式碼(PART3
glColor3f(1,0,1);///改變顏色



在茶壺後面加一個三角形

程式碼(PART4
)(增加這幾行)(三角形畫法1)

glBegin(GL_TRIANGLES);
        glColor3f(1.0f,0.0f,0.0f);   glVertex2f(0.0f, 1.0f);
        glColor3f(0.0f,1.0f,0.0f);   glVertex2f(0.87f, -0.5f);
        glColor3f(0.0f,0.0f,1.0f);   glVertex2f(-0.87f, -0.5f);
    glEnd();


畫出桶神的領巾(三角形畫法1)

程式碼(PART5(更改部分為豆沙粉色
#include <GL/glut.h>///(0)使用GLUT外掛

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///清空
    glColor3ub(181,212,148);

    glBegin(GL_TRIANGLES);
        glVertex2f((149-150)/150.0, -(116-150)/150.0);
        glVertex2f((189-150)/150.0,-(116-150)/150.0 );
        glVertex2f((176-150)/150.0,-(144-150)/150.0 );


    glEnd();

     glutSwapBuffers();///交換兩倍的Buffers

}

int main(int argc, char**argv)///???以前是int main()
{
    glutInit(&argc,argv);///(1)GLUT初始設定
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式
    glutCreateWindow("08160891我是JOJO");///(3)開窗

    glutDisplayFunc(display);///(4)等一下要顯示的函式

    glutMainLoop();///(5)主要迴圈
}


番外篇

一個練習!

#include <stdio.h>
int main(int argc, char**argv)
{
    printf("現在的 argc是:%d\n", argc);
    for(int i=0;i<argc;i++)
    {
        printf("argc[%d]是%s\n",i,argv[i]);
    }
}


點想要看的專案>點滑鼠右鍵>Activate project
小黑視窗就會跑出這個專案所產生的結果


如果喜歡我的部落格的話
可以按右上角的小鈴鐺(根本按不下去)
才不會錯過我的更新哦!😉

沒有留言:

張貼留言

Week18期末作業(橘貓的跳舞熊熊)

 期末作業(橘貓的跳舞熊熊) 影片: https://youtu.be/R89tptMaQZw 程式碼: #include <opencv/highgui.h> #include <opencv/cv.h> #include <GL/glut.h...