2017年9月21日 星期四

LBH的計圖學習筆記_week 02

一、 畫茶壺
程式碼 :
#include <GL/glut.h> /// 呼叫函式庫(外掛)
void Display()
{
    glClearColor(1,0,0,0); /// 標示背景用的色彩  紅色(參數依序 紅 綠 藍 透明度)
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); /// 清 顏色|3D
    glColor3f(1,0,1); /// 用來設定物件的顏色  3表示3個參數  f為浮點數
    glutSolidTeapot(0.3); /// 畫出實心的茶壺
    glutSwapBuffers(); /// 交換繪圖buffer(記憶體)
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv); /// 初始化(用主函式參數)
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); /// 設定顯示模式
    glutCreateWindow("GLUT Shapes"); /// 創造GLUT_3D視窗
    glutDisplayFunc(Display); /// 註冊Display函式
    glutMainLoop(); /// 主要迴圈(讓程式一直跑)
    return 0;
}

執行結果 :


二、 畫三角形(點、線、面)
程式碼 :
#include <GL/glut.h> 
void Display()
{
    glClearColor(1,0,0,0);
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glColor3f(1,0,1);
    glBegin(GL_POLYGON); /// 開始畫(多邊形)
    glVertex3f(-1,1,0); /// Vertex為點 3為3個參數 x,y,z
    glVertex3f(1,1,0);
    glVertex3f(0,-1,0);
    glEnd(); /// 結束
    glutSwapBuffers();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("GLUT Shapes");
    glutDisplayFunc(Display);
    glutMainLoop();
    return 0;

}

執行結果 :

沒有留言:

張貼留言