#include #include #include #include /* the viewport is 500x500 with the origin at (0,0) */ int Vx_min=0, Vx_max=500, Vy_min=0, Vy_max=500, Vz_min=0, Vz_max=0; void init(void) { glClearColor (0.0, 0.0, 0.0, 0.0); } void display(void) { glClear (GL_COLOR_BUFFER_BIT); glColor3f(1.0,1.0,1.0); glBegin(GL_LINES); glVertex2d(100.0, 100.0); glVertex2d(400.0, 100.0); glVertex2d(400.0, 100.0); glVertex2d(400.0, 400.0); glVertex2d(400.0, 400.0); glVertex2d(100.0, 400.0); glVertex2d(100.0, 400.0); glVertex2d(100.0, 100.0); glEnd(); glFlush (); } void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluOrtho2D(Vx_min, Vx_max, Vy_min, Vy_max); glMatrixMode (GL_MODELVIEW); } void mouse(int button, int state, int x, int y) { switch (button) { case GLUT_LEFT_BUTTON: if (state == GLUT_DOWN) { printf("left mouse click\n"); glutPostRedisplay(); } break; default: break; } } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (Vx_max-Vx_min, Vy_max-Vy_min); glutInitWindowPosition (100, 100); glutCreateWindow (argv[0]); init (); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMouseFunc(mouse); glutMainLoop(); return 0; }