next up previous contents
Nächste Seite: Darstellung von Ellipsen Aufwärts: Darstellung von Kreisen Vorherige Seite: Mittelpunkt-Entscheidungsalgorithmus   Inhalt

Bresenham-Kreis-Algorithmus

 
void DrawCircleOctant(
  int x0, int y0,
  int r,
  int color
) {
  int F(1 - r);
  int ddF_x(0);
  int ddF_y(-2*r);
  int x(0);
  int y(r);

  SetPixel(x+x0, y+y0, color);
  while ( x < y ) {
    if (F >= 0) {
      y    -= 1;        // south
      ddF_y += 2;
      F     += ddF_y;
    }
    x     += 1;         // east
    ddF_x += 2;
    F     += ddF_x + 1;
    SetPixel(x+x0, y+y0, color);
  }
}


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