2021年3月3日 星期三

林裕宸的圖學筆記week02

利用上一堂課的方式開啟glut外掛
在此程式碼中擷取以下程式碼
#include <GL/glut.h>

static void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(1,0,0);茶壺顏色
    glutSolidTeapot(0.3);茶壺
    glutSwapBuffers();更新畫面
}

int main(int argc, char *argv[])main函式
{
    glutInit(&argc, argv);Init初始化GLUT
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("08160182");視窗名稱
    glutDisplayFunc(display);準備display
    glutMainLoop();
}


















在茶壺後面加三角形
在opengl外掛中擷取
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();
    glColor3f(1,0,0);茶壺顏色
    glutSolidTeapot(0.3);茶壺
    glutSwapBuffers();更新畫面
}

int main(int argc, char *argv[])main函式
{
    glutInit(&argc, argv);Init初始化GLUT
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("08160182");視窗名稱
    glutDisplayFunc(display);準備display
    glutMainLoop();
}
三角形變線

在茶壺後面加三角形
紅色部分改GL_TRIANGLES
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();
    glColor3f(1,0,0);茶壺顏色
    glutSolidTeapot(0.3);茶壺
    glutSwapBuffers();更新畫面
}

int main(int argc, char *argv[])main函式
{
    glutInit(&argc, argv);Init初始化GLUT
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("08160182");視窗名稱
    glutDisplayFunc(display);準備display
    glutMainLoop();
}

在圖形後加圓形
#include <GL/glut.h>
#include <math.h>
static void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glBegin(GL_POLYGON);使用多邊形
    glColor3f(0.0f, 0.0f, 0.5f);顏色
    for(float angle=0;angle<3.14159265358979*2; angle+=0.01){利用for迴圈做出圓形
        glVertex2f(0.5*cos(angle),0.5*sin(angle));半徑
    }
    glEnd();

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

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


沒有留言:

張貼留言

距地表面160 Week11

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