// FCircle.c - Draws a circle using Frith's algorithm. // Copyright (c) 1996 James E. Frith - All Rights Reserved. // Email: jfrith@compumedia.com typedef unsigned char uchar; typedef unsigned int uint; extern void SetPixel(uint x, uint y, uchar color); // FCircle -------------------------------------------- // Draws a circle using Frith's Algorithm. void FCircle(int x, int y, int radius, uchar color) { int balance, xoff, yoff; xoff = 0; yoff = radius; balance = -radius; do { SetPixel(x+xoff, y+yoff, color); SetPixel(x-xoff, y+yoff, color); SetPixel(x-xoff, y-yoff, color); SetPixel(x+xoff, y-yoff, color); SetPixel(x+yoff, y+xoff, color); SetPixel(x-yoff, y+xoff, color); SetPixel(x-yoff, y-xoff, color); SetPixel(x+yoff, y-xoff, color); if ((balance += xoff++ + xoff) >= 0) balance -= --yoff + yoff; } while (xoff <= yoff); } // FCircle //