2021年3月3日 星期三

Jain's 圖學筆記 #Week02


 親手打造GLUT程式

1.首先打開OPENGL&GULT(步驟參考上周)

2.打開兩個程式碼

3.修改GULT內的程式碼

程式碼如下:

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

static void display(void)

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); ///清背景

    glutSolidTeapot(0.3);///畫茶壺

    glutSwapBuffers(); ///更新畫面

}

int main(int argc, char *argv[]) ///main( )函式

{

    glutInit(&argc, argv); ///(1)Init初始化GULT

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); 

    ///(2)Init初始化Display功能(色彩|兩倍放大|3D深度)

    glutCreateWindow("08160333");///(3)建立GULT視窗("")為視窗名稱

    glutDisplayFunc(display);///(4)準備Display函式

    glutMainLoop();///(5)主要函式

}

圖:

4.修改顏色
新增glColor3f(1,0,0);()內是(R,G,B)
圖:

5.增加OpenGL彩色三角形
   到OpenGL複製+貼上

    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();


圖:


5.如果修改glBegin(GL_TRIANGLES);
    黃標文字
圖:


5.畫圓形
程式碼:
#include <GL/glut.h>
#include <math.h>///使用數學外掛
static void display(void)
{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glBegin(GL_POLYGON);
    glColor3f(1.0f, 0.0f, 0.0f);
    for(float angle=0;angle<3.14159265359358979*2;angle+=0.01){
        glVertex2f(0.5*cos(angle),0.5*sin(angle));
    }
    glEnd();

    glColor3f(1,1,0);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("08160333");
    glutDisplayFunc(display);
    glutMainLoop();
}
圖:


沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...