/* ************************************************************************** */ /* */ /* ML_line.c */ /* | Project : libmonochrome */ /* */ /* By: Pierre "PierrotLL" Le Gall */ /* Last updated: 2011/11/22 */ /* */ /* ************************************************************************** */ #include void ML_line(int x1, int y1, int x2, int y2, ML_Color color) { int i, x, y, dx, dy, sx, sy, cumul; x = x1; y = y1; dx = x2 - x1; dy = y2 - y1; sx = sgn(dx); sy = sgn(dy); dx = abs(dx); dy = abs(dy); ML_pixel(x, y, color); if(dx > dy) { cumul = dx / 2; for(i=1 ; i dx) { cumul -= dx; y += sy; } ML_pixel(x, y, color); } } else { cumul = dy / 2; for(i=1 ; i dy) { cumul -= dy; x += sx; } ML_pixel(x, y, color); } } }