2021年5月26日 星期三

電腦圖學week14

1.複習上週內容,打光程式,貼圖程式

2.Timer,三秒後背景變色,加上angle讓方塊旋轉,加上關節

    #include <GL/glut.h>

    float angle=0;

    void display(void)

    {

        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        glPushMatrix();

        glRotatef(angle,0,0,1);

        glutSolidCube(0.3);

        glPopMatrix();

        glutSwapBuffers();

    }

    void timer(int t)

    {

        glutTimerFunc(30,timer,t+1);

        glClearColor(1,0,0,0);

        angle++;

        display();

    }

    int main(int argc, char *argv[])

    {

        glutInit(&argc, argv);

        glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);

        glutCreateWindow("Week14 Timer");

        glutDisplayFunc(display);

        glutTimerFunc(3000,timer,0);

        glutMainLoop();

    }

=========================================================================

    #include <GL/glut.h>

    float angle=0;

    void drawArml()

    {

        glPushMatrix();

        glScalef(1,0.5,0.5);

        glColor3f(0,1,0); glutSolidCube(0.2);

        glPopMatrix();

    }

    void display(void)

    {

        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        glPushMatrix();

        glColor3f(1,1,1); glutSolidCube(0.4);

            glTranslatef(-0.2,0.2,0);

            glRotatef(angle,0,0,1);

            glTranslatef(-0.1,0,0);

            drawArml();

            glPopMatrix();

        glPopMatrix();

        glutSwapBuffers();

    }

    int diff=2;

    void timer(int t)

    {

        glutTimerFunc(30,timer,t+1);

        glClearColor(1,0,0,0);

        if(angle>90) diff=-2;

        if(angle<0) diff=+2;

        angle += diff;

        angle++;

        display();

    }

    int main(int argc, char *argv[])

    {

        glutInit(&argc, argv);

        glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);

        glutCreateWindow("Week14 Timer");

        glutDisplayFunc(display);

        glutTimerFunc(3000,timer,0);

        glutMainLoop();

    }

沒有留言:

張貼留言

距地表面160 Week11

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