NoPaste

Bresenham Algorithmus

von heinz

SNIPPET_TEXT:
  1. void rasterCircle(int x0, int y0, int radius)
  2. {
  3.         int f = 1 - radius;
  4.         int ddF_x = 0;
  5.         int ddF_y = -2 * radius;
  6.         int x = 0;
  7.         int y = radius;
  8.  
  9.         pixelColor(display,x0,y0+radius,0xff0000ff);
  10.         pixelColor(display,x0,y0-radius,0xff0000ff);
  11.         pixelColor(display,x0+radius,y0,0xff0000ff);
  12.         pixelColor(display,x0-radius,y0,0xff0000ff);
  13.  
  14.         while(x < y)
  15.         {
  16.                 if(f >= 0)
  17.                 {
  18.                         y--;
  19.                         ddF_y += 2;
  20.                         f += ddF_y;
  21.                 }
  22.                 x++;
  23.                 ddF_x += 2;
  24.                 f += ddF_x + 1;
  25.  
  26.  
  27.                 pixelColor(display,x0+x,y0+y,0x00ff00ff);
  28.                 pixelColor(display,x0-x,y0+y,0x0000ffff);
  29.                 pixelColor(display,x0+x,y0-y,0xffff00ff);
  30.                 pixelColor(display,x0-x,y0-y,0x00ffffff);
  31.                 pixelColor(display,x0+y,y0+x,0xff00ffff);
  32.                 pixelColor(display,x0-y,y0+x,0xffffffff);
  33.                 pixelColor(display,x0+y,y0-x,0x808080ff);
  34.                 pixelColor(display,x0-y,y0-x,0xff8080ff);
  35.         }
  36. }

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN