NoPaste

Abgeänderter Bresenham

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.                         pixelColor(display,x0+x+1,y0+y,0x00ff00ff);
  19.                         pixelColor(display,x0-x-1,y0+y,0x0000ffff);
  20.                         pixelColor(display,x0+x+1,y0-y,0xffff00ff);
  21.                         pixelColor(display,x0-x-1,y0-y,0x00ffffff);
  22.                         pixelColor(display,x0+y,y0+x+1,0xff00ffff);
  23.                         pixelColor(display,x0-y,y0+x+1,0xffffffff);
  24.                         pixelColor(display,x0+y,y0-x-1,0x808080ff);
  25.                         pixelColor(display,x0-y,y0-x-1,0xff8080ff);
  26.                         y--;
  27.                         ddF_y += 2;
  28.                         f += ddF_y;
  29.                 }
  30.                 x++;
  31.                 ddF_x += 2;
  32.                 f += ddF_x + 1;
  33.  
  34.  
  35.                 pixelColor(display,x0+x,y0+y,0x00ff00ff);
  36.                 pixelColor(display,x0-x,y0+y,0x0000ffff);
  37.                 pixelColor(display,x0+x,y0-y,0xffff00ff);
  38.                 pixelColor(display,x0-x,y0-y,0x00ffffff);
  39.                 pixelColor(display,x0+y,y0+x,0xff00ffff);
  40.                 pixelColor(display,x0-y,y0+x,0xffffffff);
  41.                 pixelColor(display,x0+y,y0-x,0x808080ff);
  42.                 pixelColor(display,x0-y,y0-x,0xff8080ff);
  43.         }
  44. }

Quellcode

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