2018年3月5日 星期一

Week02史蒂芬的課堂筆記

一.下載

http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
從網站中下載3個檔案
1.data
2.win32
3.glut32.dll
將windows.zip解壓縮glut32.dll放入資料夾
開啟Shapes.exe

二.開啟程式

右鍵可以選擇點、線、面、三角形、四邊形、多邊形
介面會出現兩種函式
1.顏色
顏色函式
    glColor3f(r,g,b);
(1)gl是OpenGL的函式
   (2)Color色彩
            (3)3個參數
               (4)f float浮點數
2.頂點
頂點函式
     glVertex2f(x,y);
(1)gl是OpenGL的函式
   (2)Vertex頂點
            (3)2個參數
               (4)f float浮點數

三.用codeblocks

1.從projects中開啟OPEN GL
搜尋Vertex結取
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();
2.從projects中開啟GLUT

#include <GL/glut.h>
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);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("GLUT Shapes");

    glutDisplayFunc(display);

    glutMainLoop();

    return EXIT_SUCCESS;
}

3.從零開始自己打,畫出茶壺
(1)

#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE);
    glutCreateWindow("05160354_Week02");
    glutDisplayFunc(display);
    glutMainLoop();
}



(2)上色

#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
        glColor3f(0,1,0);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE);
    glutCreateWindow("05160354_Week02");
    glutDisplayFunc(display);
    glutMainLoop();
}


頂點上的顏色會自動填入


4.畫出三角形加上顏色

#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
        glColor3f(1,0,0);
        glVertex2f(0,1);
        glColor3f(0,1,0);
        glVertex2f(1,0);
        glColor3f(0,0,1);
        glVertex2f(-1,0);
        glEnd();
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE);
    glutCreateWindow("05160354_Week02");
    glutDisplayFunc(display);
    glutMainLoop();
}


沒有留言:

張貼留言