next up previous contents
Nächste Seite: Darstellung von Kreisen Aufwärts: Darstellung von Liniensegmenten Vorherige Seite: Mittelpunkt-Entscheidungsalgorithmus (Bresenham)   Inhalt

Bresenham-Algorithmus

 
void RestrictedDrawLine(
  int x0, int y0,
  int x1, int y1,
  int color
) {
  const int dx(x1-x0));
  const int dy(y1-y0));

  int F(2*dy - dx);            // F(x0+1,y0+1/2)

  const int dF_E(2*dy);        // Delta F east
  const int dF_NE(2*(dy-dx));  // Delta F north-east

  int y(y0);
  for (int x(x0); x!=x1+1; x++) {
    SetPixel(x, y, color);
    if(F>0) {
      F += dF_NE;
      y += 1;
    }
    else 
      F += dF_E;
  }
}

Implementierung der Fälle für andere Steigungen liefert kompletten Darstellungsalgorithmus.


© 2004/2005, A. Formella & D. Fellner, Universität Braunschweig