Write a code to continuously rotate a square about a pivot point. 
  #include   
static GLfloat rotat=0.0;  
void init(void);
void display(void);
void reshape(int w, int h);
void rotate(void);  
int main()
{      
        glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
        glutInitWindowSize(500,500);
        glutInitWindowPosition(100,100);
        glutCreateWindow("Moving squares");
        init();
        glutDisplayFunc(display);
        glutReshapeFunc(reshape);
        glutIdleFunc(rotate);
        glutMainLoop();
}  
void init(void){ 
glClearColour(0.0,0.0,0.0,0.0);
}  
void display(void)
{  glClear(GL_COLOUR_BUFFER_BIT);
   glPushMatrix(); //Push the transformation matrix to stack 
   glTranslatef(-50.0f,-50.0f,0.0); 
   //Translate the pivot point to origin
   glRotatef(rotat,0.0,0.0,1.0); // Rotate about origin
   glTranslatef(50.0f,50.0f,0.0); 
   //Translate pivot point back to its position
   glColour3f(0.0,0.0,1.0); //Set colour of square
   glRectf(-50.0,-50.0,50.0,50.0); //Draw square 
   glPopMatrix(); //Pop the matrix from stack
   glutSwapBuffers(); // Swap buffers
}  
void reshape(int w, int h)
{        glViewport(0,0,(GLsizei)w,(GLsizei)h);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(-250.0,250.0,-250.0,250.0,-1.0,1.0);
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
}  
void rotate(void)
{     rotat+=0.1; //Continuously increse the rotation angle by 0.1
                if(rotat>360.0)
                        rotat-=360.0;
        glutPostRedisplay(); //send the current window for
redisplay
}