#include void init() { // set matrix mode to PROJECTION mode glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0,200,0,200); } void drawPoint(int x, int y) { glBegin(GL_POINTS); glColor3f( 1.0f, 1.0f, 1.0f ); glVertex2i(x,y); glEnd(); } void midpoint( int x0, int y0, int x1, int y1 ) { int dx, dy, incrE, incrNE, d, x, y; dx = x1-x0; dy = y1-y0; d = 2*dy - dx; incrE = 2*dy; incrNE = 2 * (dy - dx); x = x0; y = y0; drawPoint(x,y); while( x < x1 ) { if ( d <= 0 ) { x++; d += incrE; } else { x++; y++; d += incrNE; } drawPoint(x,y); } } void drawLine() { //delete buffers glClear(GL_COLOR_BUFFER_BIT); midpoint(10, 10, 170, 130); } void keyboard(unsigned char key, int x, int y) { switch(key) { case 27: exit(0); break; } } // Called to draw scene void RenderScene(void) { // Clear the window with current clearing color glClear(GL_COLOR_BUFFER_BIT); drawLine(); // Flush drawing commands glFlush(); } // Setup the rendering state void SetupRC(void) { // Set clear color to black glClearColor(0.0f, 0.0f, 0.0f, 1.0f); } // Main program entry point int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(100,100); glutInitWindowPosition(20,20); glutCreateWindow("Points"); SetupRC(); init(); glutDisplayFunc(RenderScene); glutKeyboardFunc(keyboard); glutMainLoop(); return 0; }