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--; }
}
}