/* Fonctions de dessin OpenGL */ /* */ /* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Novembre 2010 */ #include #include #include #include #include #include void traceSegment(int xi,int yi,int xf,int yf) { glBegin(GL_POINTS); int i,cumul; int x = xi; int y = yi; int dx = xf - xi; int dy = yf - yi; int xinc = ( dx > 0 ) ? 1 : -1; int yinc = ( dy > 0 ) ? 1 : -1; dx = abs(dx); dy = abs(dy); glVertex2i(x,y); if ( dx > dy ) { cumul = dx / 2; for ( i = 1 ; i <= dx ; i++ ) { x += xinc; cumul += dy; if (cumul >= dx) { cumul -= dx; y += yinc; } glVertex2i(x,y); } } else { cumul = dy / 2; for ( i = 1 ; i <= dy ; i++ ) { y += yinc; cumul += dx; if ( cumul >= dy ) { cumul -= dy; x += xinc; } glVertex2i(x,y); } } glEnd(); }