2014年5月30日 星期五

week15

#include<GL/glut.h>
float a=0;
float angle[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
float angleOld[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
float angleNew[20]={90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
void display()
{
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     glPushMatrix();
        glRotatef(angle[0],0,0,1);
        glutSolidTeapot(0.3);
     glPopMatrix();
     glutSwapBuffers();
}


void keyboard(unsigned char key,int x,int y)
{

      if(key=='r'){
       
         a+=0.1;
         angle[0]=angleOld[0]*(1-a)+angleNew[0]*a;
         angle[1]=angleOld[1]*(1-a)+angleNew[1]*a;
         angle[2]=angleOld[2]*(1-a)+angleNew[2]*a;
         angle[3]=angleOld[3]*(1-a)+angleNew[3]*a;
         angle[4]=angleOld[4]*(1-a)+angleNew[4]*a;
         angle[5]=angleOld[5]*(1-a)+angleNew[5]*a;
         angle[6]=angleOld[6]*(1-a)+angleNew[6]*a;
         angle[7]=angleOld[7]*(1-a)+angleNew[7]*a;
         angle[8]=angleOld[8]*(1-a)+angleNew[8]*a;
         angle[9]=angleOld[9]*(1-a)+angleNew[9]*a;
}
glutPostRedisplay();

}
int main()
{
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week15");

glutKeyboardFunc(keyboard);
glutDisplayFunc(display);
glutMainLoop();
}


沒有留言:

張貼留言