Algorithmus zum Zeichnen einer Linie:
void bresenham_linie(Point p, Point q) /* zeichnet Linie von Punkt p zu Punkt q im 1. Oktanden */ { int dx, dy, error, delta, schwelle; dx = q.x - p.x; dy = q.y - p.y; error = -dx; delta = 2*dy; schwelle = -2*dx; while (p.x <= q.x) { set_pixel(p); p.x++; error += delta; if (error > 0) { p.y++; error += schwelle; } } }
Durch Antialiasing (angepasste Grauwerte in der Umgebung) kann der Pixelverlauf geglättet werden.
Algorithmus zum Zeichnen eines Kreises
void bresenham_kreis (int r) /* zeichnet Kreis um Punkt 0,0 mit Radius r */ { int x, y, d, dx, dxy; x=0; y=r; d=1-r; dx=3; dxy=-2*r+5; while (y>=x) { set_pixel (new Point(x,y)); if (d < 0) { d += dx; dx += 2; dxy += 2; x++; } else { d += dxy; dx += 2; dxy += 4; x++; y--; } } }