2018年3月24日 星期六

Week02_蔡明憲

1.認識argc、argv與cmd的使用
(1)先打開OpenGL專案,並匯入上週說的檔案freeglut
(2)刪除原本的程式碼並且打上以下的程式碼:
#include<stdio.h>
#include<GL/glut.h>
int main(int argc,char **argv)
{
    for(int i=0;i<argc;i++){
        printf("argv[%d]: %s\n",i,argv[i]);
    }
}

(3)執行之後打開上週下載的freeglut-MinGW-3.0.0-1.mp資料夾,並將freeglut.dll的檔案複製
(4)複製完貼在專案GLUT的資料夾
(5)打開命令提示字元,將路徑改成剛剛專案GLUT資料夾的路徑,並選擇要執行的.exe檔
(6)輸入文字它就會照著程式碼所寫的把空格的地方換行
2.叫出茶壺並更改顏色
(1)先輸入以下的程式碼:
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);///清畫面
    glutSolidTeapot(0.3);///大小為0.3的茶壺
    glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);///初始Initialize你的glut參數設定
    glutInitDisplayMode(GLUT_DOUBLE);///顯示模式:double buffers
    glutCreateWindow("Week02 Hello World Triangle");///建立視窗
    glutDisplayFunc(display);///顯示函式display()用來畫圖的
    glutMainLoop();///主要的迴圈,用來控制程式

}
即可叫出茶壺的圖形
(2)增加一行程式碼,可以更改茶壺顏色
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///清畫面
    glColor3f(0,1,0);///RGB調整茶壺的Color
   ///Color3f 3表示3個參數,f表示float浮點數(0.0~1.0)
    glutSolidTeapot(0.3);///大小為0.3的茶壺
    glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);///初始Initialize你的glut參數設定
    glutInitDisplayMode(GLUT_DOUBLE);///顯示模式:double buffers
    glutCreateWindow("Week02 Hello World Triangle");///建立視窗
    glutDisplayFunc(display);///顯示函式display()用來畫圖的
    glutMainLoop();///主要的迴圈,用來控制程式

}
而顏色代碼則是RGB的代碼(可以去小畫家查詢你想要顏色的RGB號碼)
(3)再增加一行程式碼,即可變換背景顏色:
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
glClearColor(198/255.0,128/255.0,192/255.0,1);///清背景顏色
    glClear(GL_COLOR_BUFFER_BIT);///清畫面
    glColor3ub(100,199,20);///RGB調整茶壺的color
    glutSolidTeapot(0.3);///大小為0.3的茶壺
    glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);///初始Initialize你的glut參數設定
    glutInitDisplayMode(GLUT_DOUBLE);///顯示模式:double buffers
    glutCreateWindow("Week02 Hello World Triangle");///建立視窗
    glutDisplayFunc(display);///顯示函式display()用來畫圖的
    glutMainLoop();///主要的迴圈,用來控制程式

}
3.如何畫出三角形
輸入以下程式碼:
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
    glClearColor(100/255.0,136/255.0,102/255.0,1);///清背景顏色
    glClear(GL_COLOR_BUFFER_BIT);///清畫面
    glBegin(GL_POLYGON);///開始畫
        glColor3ub(100,25,244);///顏色
        glVertex2f(-1,-1);///座標點
        glColor3ub(200,222,55);
        glVertex2f(+1,-1);
        glColor3ub(155,120,263);
        glVertex2f(0,1);
    glEnd();///結束畫
    glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);///初始Initialize你的glut參數設定
    glutInitDisplayMode(GLUT_DOUBLE);///顯示模式:double buffers
    glutCreateWindow("Week02 Hello World Triangle");///建立視窗
    glutDisplayFunc(display);///顯示函式display()用來畫圖的
    glutMainLoop();///主要的迴圈,用來控制程式

}
將顏色以及座標設定好後,即可變成一個有顏色的三角形ㄌ,如圖:


沒有留言:

張貼留言