1 /* $Id: circle.c,v 1.4 2002-10-10 18:55:32 btb Exp $ */
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
20 static char rcsid[] = "$Id: circle.c,v 1.4 2002-10-10 18:55:32 btb Exp $";
30 int gr_circle(fix xc1,fix yc1,fix r1)
32 int p,x, y, xc, yc, r;
42 if ( (xc+r) < 0 ) return 1;
43 if ( (xc-r) > GWIDTH ) return 1;
44 if ( (yc+r) < 0 ) return 1;
45 if ( (yc-r) > GHEIGHT ) return 1;
49 // Draw the first octant
50 gr_pixel( xc-y, yc-x );
51 gr_pixel( xc+y, yc-x );
52 gr_pixel( xc-y, yc+x );
53 gr_pixel( xc+y, yc+x );
58 // Draw the second octant
59 gr_pixel( xc-x, yc-y );
60 gr_pixel( xc+x, yc-y );
61 gr_pixel( xc-x, yc+y );
62 gr_pixel( xc+x, yc+y );
69 gr_pixel( xc-x, yc-y );
70 gr_pixel( xc+x, yc-y );
71 gr_pixel( xc-x, yc+y );
72 gr_pixel( xc+x, yc+y );
77 int gr_ucircle(fix xc1,fix yc1,fix r1)
79 int p,x, y, xc, yc, r;
90 // Draw the first octant
91 gr_upixel( xc-y, yc-x );
92 gr_upixel( xc+y, yc-x );
93 gr_upixel( xc-y, yc+x );
94 gr_upixel( xc+y, yc+x );
99 // Draw the second octant
100 gr_upixel( xc-x, yc-y );
101 gr_upixel( xc+x, yc-y );
102 gr_upixel( xc-x, yc+y );
103 gr_upixel( xc+x, yc+y );
110 gr_upixel( xc-x, yc-y );
111 gr_upixel( xc+x, yc-y );
112 gr_upixel( xc-x, yc+y );
113 gr_upixel( xc+x, yc+y );