03/13/2003
15-462 Graphics I
9
Bresenham’s Algorithm V
•So dk+1 = dk – 2Dy if dk > 0
•And dk+1 = dk – 2(Dy – Dx) if dk · 0
•Final (efficient) implementation:
void draw_line(int x1, int y1, int x2, int y2) {
int x, y = y0;
int dx = 2*(x2-x1), dy = 2*(y2-y1);
int dydx = dy-dx, D = (dy-dx)/2;
 
for (x = x1 ; x <= x2 ; x++) {
write_pixel(x, y, color);
if (D > 0) D -= dy;
else {y++; D -= dydx;}
}
}