home *** CD-ROM | disk | FTP | other *** search
- #include <graphics.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <string.h>
-
-
- void yinyang( int xcen, int ycen, int cen_r, signed int align )
- {
-
- int xwhite, ywhite, xblack, yblack;
- int white_r, black_r;
- double alpha;
- double cos_alpha, sin_alpha;
- char *temp_str, *temp_str2;
- arccoordstype *whitearc, *blackarc;
- whitearc=(arccoordstype *)malloc(30);blackarc=(arccoordstype *)malloc(30);
- white_r = ((long) cen_r*( align+300 ))/600;
- black_r = cen_r - white_r;
-
- alpha = 45;
-
- cos_alpha = cos(( 2*M_PI*alpha )/360 );
- sin_alpha = sin(( 2*M_PI*alpha )/360 );
-
- xwhite = xcen - ( cen_r - white_r )*sin_alpha ;
- ywhite = ycen - ( cen_r - white_r )*cos_alpha ;
-
- xblack = xcen + ( cen_r - black_r )*sin_alpha ;
- yblack = ycen + ( cen_r - black_r )*cos_alpha ;
-
- setcolor( RED );
-
- arc( xwhite, ywhite, 270+alpha, 90+alpha, white_r );
- getarccoords( whitearc );
-
- arc( xblack, yblack, 90+alpha, 270+alpha, black_r );
- getarccoords( blackarc );
-
- line( whitearc->xstart, whitearc->ystart, blackarc->xstart, blackarc->ystart );
-
- setlinestyle( SOLID_LINE, 0xFFFF, THICK_WIDTH );
- circle( xcen, ycen, cen_r );
- setlinestyle( SOLID_LINE, 0xFFFF, NORM_WIDTH );
-
- setfillstyle( SOLID_FILL, WHITE );
- floodfill( xwhite, ywhite, RED );
-
- setcolor( BLACK );
- setfillstyle( SOLID_FILL, BLACK );
- floodfill( xblack, yblack, RED );
- pieslice( xwhite, ywhite, 0, 360, white_r/5 );
-
- setcolor( WHITE );
- setfillstyle( SOLID_FILL, WHITE );
- pieslice( xblack, yblack, 0, 360, black_r/5 );
-
-
- free(whitearc);free(blackarc);
- return;
-
- }
-