From: Jay Link (jlink@interlink-bbs.com)
Date: Sat 04 Dec 1999 - 22:06:36 IST
Hi Matan,
Well, stupid me, Chris Atenasio has helped me to figure out how to make
the two new functions work with gl_hline() instead of gl_line(). So,
please replace the gl_fillcircle() I sent you earlier with this. The man
pages and all will remain the same. Thank you! I will look into your
suggestion on gl_bcircle() now re: aspect ratios.
void gl_fillcircle(int sx, int sy, int r, int c)
{
int x = 0,
y = r,
d = 1 - r;
if (r < 1) {
gl_setpixel(sx, sy, c);
return;
}
if (__clip)
if (sx + r < __clipx1 || sx - r > __clipx2
|| sy + r < __clipy1 || sy - r > __clipy2)
return;
gl_hline(sx - x, sy + y, sx + x, c);
gl_hline(sx - x, sy - y, sx + x, c);
gl_hline(sx - y, sy + x, sx + y, c);
gl_hline(sx - y, sy - x, sx + y, c);
while (x < y)
{
if (d < 0)
{
d += x * 2 + 3;
} else {
d += x * 2 - y * 2 + 5;
y--;
}
x++;
gl_hline(sx - x, sy + y, sx + x, c);
gl_hline(sx - x, sy - y, sx + x, c);
gl_hline(sx - y, sy + x, sx + y, c);
gl_hline(sx - y, sy - x, sx + y, c);
}
}
This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:22 IST