2020年3月10日 星期二

圖學筆記-02


前情提要:



1.

重點:

<GL/glut.h>     GLUT函式庫

基本格式:

#include<GL/glut.h>
void display()
{

}
int main(int argc,char**argv)

{

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

    glutMainLoop();

}

範例:



#include<GL/glut.h>///函式庫

void display()

{

    glutSolidTeapot(0.3); ///實心的茶壺

    glutSwapBuffers(); ///交換2倍 buffer s

}



int main(int argc,char**argv)

{

    glutInit(&argc,argv); ///將main()的參數放進來

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

    ///啟動3D的顯示能力(兩倍顯示 |看3D的深度)

    glutCreateWindow("Week02");///3D視窗名

    glutDisplayFunc(display);///用display這個func畫

    glutMainLoop();///主要迴圈

}



2.塗色


顏色表示新增的程式碼

#include ///函式庫
void display()
{
    glColor3f(0.5,1.0,0.2);
    ///gl開頭 3f結尾 (3個float數字)中間color


    glColir3ub(255,0,255);
    ///unsigned byte (ub的縮寫)

    glutSolidTeapot(0.3);
    glutSwapBuffers();
}

int main(int argc,char**argv)
{
    glutInit(&argc,argv); ///將main()的參數放進來
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week02");
    glutDisplayFunc(display);
    glutMainLoop();
}


3.Vertex

I.3D 圖學


解壓縮windows.zip>將data.zip解壓縮至windows資料夾內>將glut.32.dll放至windows內




II.實作

顏色表示新增的程式碼


#include
void display()
{
    glBegin(GL_POLYGON);
        glColor3f(1,0,0);glVertex2f(1,0); 
        glColor3f(0,1,0);glVertex2f(-1,1);
        glColor3f(0,0,1);glVertex2f(-1,-1);
    glEnd();
    glutSwapBuffers(); 
}

int main(int argc,char**argv)
{
    glutInit(&argc,argv); 
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week02");
    glutDisplayFunc(display);
    glutMainLoop();
}

座標表示圖:
注:會有漸層是因為顯卡內建功能

沒有留言:

張貼留言