home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / ARSRC21.ZIP / YINYANG2.CPP < prev   
C/C++ Source or Header  |  1995-06-02  |  2KB  |  63 lines

  1. #include <graphics.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. #include <string.h>
  6.  
  7.  
  8. void yinyang( int xcen, int ycen, int cen_r, signed int align )
  9.     {
  10.  
  11.     int xwhite, ywhite, xblack, yblack;
  12.     int white_r, black_r;
  13.     double alpha;
  14.     double cos_alpha, sin_alpha;
  15.     char *temp_str, *temp_str2;
  16.     arccoordstype *whitearc, *blackarc;
  17.     whitearc=(arccoordstype *)malloc(30);blackarc=(arccoordstype *)malloc(30);
  18.     white_r = ((long) cen_r*( align+300 ))/600;
  19.     black_r = cen_r - white_r;
  20.  
  21.     alpha = 45;
  22.  
  23.     cos_alpha = cos(( 2*M_PI*alpha )/360 );
  24.     sin_alpha = sin(( 2*M_PI*alpha )/360 );
  25.  
  26.     xwhite = xcen - ( cen_r - white_r )*sin_alpha ;
  27.     ywhite = ycen - ( cen_r - white_r )*cos_alpha ;
  28.  
  29.     xblack = xcen + ( cen_r - black_r )*sin_alpha ;
  30.     yblack = ycen + ( cen_r - black_r )*cos_alpha ;
  31.  
  32.     setcolor( RED );
  33.  
  34.     arc( xwhite, ywhite, 270+alpha,  90+alpha, white_r );
  35.     getarccoords( whitearc );
  36.  
  37.     arc( xblack, yblack,  90+alpha, 270+alpha, black_r );
  38.     getarccoords( blackarc );
  39.  
  40.     line( whitearc->xstart, whitearc->ystart, blackarc->xstart, blackarc->ystart );
  41.  
  42.     setlinestyle( SOLID_LINE, 0xFFFF, THICK_WIDTH );
  43.     circle( xcen, ycen, cen_r );
  44.     setlinestyle( SOLID_LINE, 0xFFFF, NORM_WIDTH  );
  45.  
  46.     setfillstyle( SOLID_FILL, WHITE );
  47.     floodfill( xwhite, ywhite, RED );
  48.  
  49.     setcolor( BLACK );
  50.     setfillstyle( SOLID_FILL, BLACK );
  51.     floodfill( xblack, yblack, RED  );
  52.     pieslice( xwhite, ywhite, 0, 360, white_r/5 );
  53.  
  54.     setcolor( WHITE );
  55.     setfillstyle( SOLID_FILL, WHITE );
  56.     pieslice( xblack, yblack, 0, 360, black_r/5 );
  57.  
  58.  
  59.   free(whitearc);free(blackarc);
  60.     return;
  61.  
  62.     }
  63.