2021年3月3日 星期三

08160661縮短程式碼

 

小葉老師今天教我們怎麼把上禮拜教的程式碼縮短,
讓程式碼看起來簡單一點,也讓我們比較好懂。
程式碼:

#include <GL/glut.h>

static void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("08160661");
    glutDisplayFunc(display);
    glutMainLoop();
}
第二節課老師多教了幾行程式碼,讓背景的三角形跟顏色可以跑出來
程式碼:
#include <GL/glut.h>
void display()
{
    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[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("08160661");
    glutDisplayFunc(display);
    glutMainLoop();
}
最後一節在教背景的變換
    將glBegin(GL_TRIANGLES);換成    glBegin(GL_LINE_LOOP);
背景會變成只有線條,另外還有很多種可以變換,只要將glBegin裡的參數換掉就好。
用數學#include<Math.h>然後將glBegin的參數改成POLYGON,
再用一個for迴圈,可以做圓形的背景。










沒有留言:

張貼留言

距地表面160 Week11

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