Changeset 132
- Timestamp:
- Nov 10, 2003, 7:21:36 PM (19 years ago)
- Location:
- ttyvaders/trunk/libee
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ttyvaders/trunk/libee/conic.c
r130 r132 48 48 } 49 49 50 static void ellipsepoints(int xo, int yo, int x, int y, char c) 51 { 52 ee_putcharTO(xo + x, yo + y, c); 53 ee_putcharTO(xo - x, yo + y, c); 54 ee_putcharTO(xo + x, yo - y, c); 55 ee_putcharTO(xo - x, yo - y, c); 56 } 57 58 void ee_draw_ellipse(int xo, int yo, int a, int b, char c) 59 { 60 int d2; 61 int x = 0; 62 int y = b; 63 int d1 = b*b - (a*a*b) + (a*a/4); 64 65 ellipsepoints(xo, yo, x, y, c); 66 67 while( a*a*y - a*a/2 > b*b*(x+1)) 68 { 69 if(d1 < 0) 70 { 71 d1 += b*b*(2*x+1); /* XXX: "Computer Graphics" has + 3 here. */ 72 } 73 else 74 { 75 d1 += b*b*(2*x*1) + a*a*(-2*y+2); 76 y--; 77 } 78 x++; 79 ellipsepoints(xo, yo, x, y, c); 80 } 81 82 d2 = b*b*(x+0.5)*(x+0.5) + a*a*(y-1)*(y-1) - a*a*b*b; 83 while(y > 0) 84 { 85 if(d2 < 0) 86 { 87 d2 += b*b*(2*x+2) + a*a*(-2*y+3); 88 x++; 89 } 90 else 91 { 92 d2 += a*a*(-2*y+3); 93 } 94 95 y--; 96 ellipsepoints(xo, yo, x, y, c); 97 } 98 } 99 -
ttyvaders/trunk/libee/ee.h
r122 r132 82 82 void ee_draw_thin_line(int, int, int, int); 83 83 void ee_draw_circle(int, int, int, char); 84 void ee_draw_ellipse(int, int, int, int, char); 84 85 void ee_fill_triangle(int, int, int, int, int, int, char); 85 86
Note: See TracChangeset
for help on using the changeset viewer.