2021年3月8日 星期一

你要出多少week03

今天一開始新增的兩個專案跟week01步驟一樣,可以去對照那天的blog。

第一個專案打開後 開啟他的程式,將框起來的程式碼複製。

第二個專案



選擇桌面




下載這個檔 解壓縮




重新命名
成功建立專案之後

打開第二個專案的程式碼 並把他整理成這樣(按那個+)


刪除程式碼到現在這樣

再打開那兩行,刪除裡面的程式碼。
剩下的程式碼如下

#include <GL/glut.h>


static void display(void)
{


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSwapBuffers();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("GLUT Shapes");


    glutDisplayFunc(display);
    glutKeyboardFunc(key);
   
    glutMainLoop();

   
}
(如下圖)


留下的程式碼都是精華!!!!


將第一個專案複製的程式碼貼到第二個專案的程式碼裡
程式碼如下

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

static void display(void)
{


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    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();

(上面是複製的程式碼)
    
    glutSwapBuffers();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);//GULT初始設定
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);//顯示模式
    glutCreateWindow("GLUT Shapes");//開窗


    glutDisplayFunc(display);//等等要顯示的涵式

    glutKeyboardFunc(key);
   
    glutMainLoop();//主要迴圈
   
}

(如下圖)

之後去增加一些程式碼
程式碼如下

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

void display()
{


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清空

    glColor3f(0.0f, 1.0f, 0.0f);   glVertex2f(0.87f,  -0.5f);   //(這串是設定顏色,我設定的是綠色)
    glutSolidTeapot(0.3);//實心茶壺
    glutSwapBuffers();//交換兩倍的buffers
}

int main(int argc, char *argv[])//以前我們程式碼會寫 int main()
{
    glutInit(&argc, argv);//GULT初始設定
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);//顯示模式
    glutCreateWindow("08160520石雅慈"); //(視窗的名稱)


    glutDisplayFunc(display);//等等要顯示的涵式

    glutMainLoop();//主要迴圈


}
(程式執行結果如下)


將第一個專案的程式碼打開後,全部刪除,打下我們接下來要執行的程式碼。
程式碼如下
#include <stdio.h>
int main(int argc, char**argv)
{
    printf("現在的argc是:%d\n",argc);
    for(int i=0;i<argc;i++)
    {
        printf("argv[%d]是:%s\n",i,argv[i]);
    }
}

執行程式碼 如下圖


開啟cmd



將檔案移進去

回到剛剛的茶壺
我們用別的方式改顏色
程式碼如下
#include <GL/glut.h>//使用GLUT外掛

void display()
{


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清空

    glColor3f(1,0,0);//紅色 //(跟前面改顏色不一樣的地方)
    glutSolidTeapot(0.3);//實心茶壺
    glutSwapBuffers();//交換兩倍的buffers
}

int main(int argc, char *argv[])//以前我們程式碼會寫 int main()
{
    glutInit(&argc, argv);//GULT初始設定
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);//顯示模式
    glutCreateWindow("08160520石雅慈")//(視窗的名稱)


    glutDisplayFunc(display);//等等要顯示的涵式

    glutMainLoop();//主要迴圈


}
(程式執行結果如下)




接下來我們來加彩虹色三角形!!
程式碼如下
#include <GL/glut.h>//使用GLUT外掛

void display()
{


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清空
    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();

    glColor3f(1,1,0);//黃色 //(跟前面改顏色不一樣的地方)
    glutSolidTeapot(0.3);//實心茶壺
    glutSwapBuffers();//交換兩倍的buffers
}

int main(int argc, char *argv[])//以前我們程式碼會寫 int main()
{
    glutInit(&argc, argv);//GULT初始設定
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);//顯示模式
    glutCreateWindow("08160520石雅慈")//(視窗的名稱)


    glutDisplayFunc(display);//等等要顯示的涵式

    glutMainLoop();//主要迴圈


}
(程式執行結果如下)







沒有留言:

張貼留言

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

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