#include #include #include #include #include double x1,x2; void display(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,0.0,0.0); glLoadIdentity(); // glTranslatef( x1, 0.0, 0.0); glColor3f( 1.0, 0.0, 0.0); glBegin(GL_QUADS); // printf("\nx1: %f\n",x1); glVertex3f( 0.25+x1, 0.25+x1, 0.0); glVertex3f( 0.75+x1, 0.25+x1, 0.0); glVertex3f( 0.75+x1, 0.75+x1, 0.0); glVertex3f( 0.25+x1, 0.75+x1, 0.0); // glVertex3f( 0.00, 0.00, 0.0); // glVertex3f( 0.50, 0.00, 0.0); // glVertex3f( 0.50, 0.50, 0.0); // glVertex3f( 0.00, 0.50, 0.0); glEnd(); // glTranslatef( 2*x2, 0.0, 0.0); glColor3f( 0.0, 1.0, 0.0); glBegin(GL_QUADS); // printf("\nx2: %f\n",x1); // glVertex3f( 0.25, 0.25, 0.0); // glVertex3f( 0.75, 0.25, 0.0); // glVertex3f( 0.75, 0.75, 0.0); // glVertex3f( 0.25, 0.75, 0.0); glVertex3f( 0.25+x2, 0.25+x2, 0.0); glVertex3f( 0.75+x2, 0.25+x2, 0.0); glVertex3f( 0.75+x2, 0.75+x2, 0.0); glVertex3f( 0.25+x2, 0.75+x2, 0.0); glEnd(); glFlush(); glutSwapBuffers(); glutPostRedisplay(); x1-=.0001; x2+=.0001; } int main(int argc,char* argv[]) { printf("1\n"); glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); glutInitWindowSize(400,400); glutInitWindowPosition(100,50); glutCreateWindow("2d collision detection"); printf("2/\n"); glClearColor(1.0,1.0,1.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0); // left, right, bottom, top, front, back printf("3\n"); x1=0.0; x2=-1.0; int k; for(k=0;k<20;k++) { printf("4\n"); glutDisplayFunc(display); printf("5\n"); } printf("6\n"); glutMainLoop(); return 0; }