2018年5月4日 星期五

第五周-04160453

1.更改地一周的程式看其變化

a.旋轉變色

b.轉動茶壺

#include <GL/glut.h>
float angle=0;///Now: 讓茶壼自動轉動的角度
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glPushMatrix();///Now:備份矩陣
            glRotatef(angle, 0,0,1);///Now:轉動
            glutSolidTeapot(0.3);
        glPopMatrix();///Now:還原矩陣
    glutSwapBuffers();
}
void motion(int x, int y)
{
    angle=x;///Now: 改變角度
    glutPostRedisplay();///Now: 請 重畫畫面
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week05 TRT");

    glutDisplayFunc(display);
    glutMotionFunc(motion);///Now:
    glutMainLoop();
}

c.轉動茶壺

#include <GL/glut.h>
float angle=0;///Now: 讓茶壼自動轉動的角度
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glPushMatrix();///Now:備份矩陣
            glRotatef(angle, 0,0,1);///Now:轉動 Now2:再轉他(樓下全部)
            glTranslatef(0.45,-0.10,0);///Now2:把茶壺柄放到正中間,等一下才能轉
            glutSolidTeapot(0.3);
        glPopMatrix();///Now:還原矩陣
    glutSwapBuffers();
}
void motion(int x, int y)
{
    angle=x;///Now: 改變角度
    glutPostRedisplay();///Now: 請 重畫畫面
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week05 TRT");

    glutDisplayFunc(display);
    glutMotionFunc(motion);///Now:
    glutMainLoop();
}

沒有留言:

張貼留言