Attachment 't28.c'

Download

   1 // t28.c
   2 // v0.1 KHL 2009-04-21
   3 // gcc -o t28 t28.c -lm -lgd ; ./t28
   4 // static drawing, though slow to compute
   5 // earth and toroid around orbit
   6 
   7 #define TITLE    "M288, 7693 orbits, 500km minor radius"
   8 #define GIFOUT   "t28.gif"
   9 #define NORB    -24
  10 #define DELTANG 0.2
  11 #define ORBWIDTH  9
  12 #define ANG0      0
  13 #define ANG1     90
  14 #define ANG2    142
  15 #define NELIP    32
  16 #define RADIUS   0.07839            // 500/6378
  17 
  18 #include "tor00.hc"
  19 
  20 int main () {
  21    double  t_ang ;
  22    int     e_cnt ;
  23    int     orb ;
  24 
  25    gdPoint ellipse0[NELIP+2];
  26    gdPoint ellipse1[NELIP+2];
  27 
  28    displaystart();
  29 
  30    torstart();
  31 
  32    gdImageGifAnimBegin( im1, gifout, 1, -1 ) ; // no repeat
  33    // gdImageGifAnimBegin( im1, gifout, 1,  4 ) ; // repeat 4 times
  34    // gdImageGifAnimBegin( im1, gifout, 1,  0 ) ; // continuous repeat
  35 
  36    framestart(    90, TITLE );
  37 
  38    // draw back portion of the orbit toroid
  39   
  40    double acolor =  0.0 ;
  41 
  42    for( t_ang=ANG0 ; t_ang < ANG2 ; t_ang += DELTANG ) {
  43 
  44       double ecolor ;
  45       if( acolor < 0.5 ) { ecolor = gray ; }
  46       else {
  47          ecolor = lgray ;
  48          if( acolor > 14.5 ) { acolor -= 15.0 ; }
  49       }
  50       acolor += DELTANG ;
  51 
  52       double angle_rad=DEG2RAD( t_ang );
  53 
  54       // ellipse disk - since it is at an angle, we will have to draw it
  55       // as a filled polygon
  56     
  57       // ellipse disk on left
  58       for( e_cnt=0 ; e_cnt < NELIP ; e_cnt++ ) {
  59          double toa = angle_rad + (2.0*PI*e_cnt)/NELIP  ;
  60          double tos = RADIUS          ;
  61          double tor = tos * cos( toa );
  62          double toy = tos * sin( toa );
  63          double tox = -(major+tor)*sin( angle_rad );
  64 	 double toz = -(major+tor)*cos( angle_rad );
  65 	 ellipse0[e_cnt] = sr0( tox, toy, toz );
  66       }
  67       gdImagePolygon( im, ellipse0, NELIP, ecolor );
  68 
  69       // ellipse disk on right
  70       for( e_cnt=0 ; e_cnt < NELIP ; e_cnt++ ) {
  71          double toa = -angle_rad + (2.0*PI*e_cnt)/NELIP  ;
  72          double tos = RADIUS          ;
  73          double tor = tos * cos( toa );
  74          double toy = tos * sin( toa );
  75          double tox = -(major+tor)*sin( -angle_rad );
  76          double toz = -(major+tor)*cos( -angle_rad );
  77          ellipse1[e_cnt] = sr0( tox, toy, toz );
  78       }
  79       gdImagePolygon( im, ellipse1, NELIP, ecolor );
  80    }
  81 
  82    gdImageFilledPolygon( im, ellipse0, NELIP, gray );
  83    gdImagePolygon( im, ellipse0, NELIP, lgray  );
  84 
  85    gdImageFilledPolygon( im, ellipse1, NELIP, gray );
  86    gdImagePolygon( im, ellipse1, NELIP, lgray  );
  87 
  88    drawearth();
  89    sprintf( bottom, "10km spacing between orbits" );
  90 
  91    frameend();
  92    displayend();
  93    return 0;
  94 }

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2009-05-12 03:45:56, 11.6 KB) [[attachment:ap01.c]]
  • [get | view] (2009-05-12 20:57:15, 11.1 KB) [[attachment:ap02.c]]
  • [get | view] (2021-06-19 05:05:20, 853.5 KB) [[attachment:ap02.png]]
  • [get | view] (2009-05-11 08:39:41, 1.4 KB) [[attachment:t01.c]]
  • [get | view] (2009-05-11 02:49:58, 14.3 KB) [[attachment:t01.gif]]
  • [get | view] (2009-05-11 08:39:31, 4.0 KB) [[attachment:t04.c]]
  • [get | view] (2009-05-11 02:50:13, 24.3 KB) [[attachment:t04.gif]]
  • [get | view] (2009-05-11 08:39:10, 4.0 KB) [[attachment:t08.c]]
  • [get | view] (2009-05-11 02:50:25, 29.6 KB) [[attachment:t08.gif]]
  • [get | view] (2009-05-11 02:53:25, 34.8 KB) [[attachment:t12.gif]]
  • [get | view] (2009-05-11 08:38:55, 4.0 KB) [[attachment:t16.c]]
  • [get | view] (2009-05-11 02:53:12, 38.0 KB) [[attachment:t16.gif]]
  • [get | view] (2009-05-11 08:38:44, 4.0 KB) [[attachment:t20.c]]
  • [get | view] (2009-05-11 02:52:57, 39.6 KB) [[attachment:t20.gif]]
  • [get | view] (2009-05-11 08:38:32, 4.0 KB) [[attachment:t24.c]]
  • [get | view] (2009-05-11 02:52:39, 44.0 KB) [[attachment:t24.gif]]
  • [get | view] (2009-05-11 08:37:48, 4.0 KB) [[attachment:t25.c]]
  • [get | view] (2009-05-11 02:52:29, 41.5 KB) [[attachment:t25.gif]]
  • [get | view] (2009-05-11 08:38:21, 3.4 KB) [[attachment:t26.c]]
  • [get | view] (2009-05-11 02:52:12, 28.0 KB) [[attachment:t26.gif]]
  • [get | view] (2009-05-11 08:37:25, 2.5 KB) [[attachment:t27.c]]
  • [get | view] (2009-05-11 02:51:59, 25.8 KB) [[attachment:t27.gif]]
  • [get | view] (2009-05-11 08:37:13, 2.5 KB) [[attachment:t28.c]]
  • [get | view] (2009-05-11 02:51:34, 18.5 KB) [[attachment:t28.gif]]
  • [get | view] (2009-05-11 08:37:01, 1.4 KB) [[attachment:t41.c]]
  • [get | view] (2009-05-11 02:51:19, 11.4 KB) [[attachment:t41.gif]]
  • [get | view] (2009-05-11 08:36:46, 3.6 KB) [[attachment:t42.c]]
  • [get | view] (2009-05-11 02:50:49, 5.3 KB) [[attachment:t42.gif]]
  • [get | view] (2009-05-11 08:36:31, 13.4 KB) [[attachment:tor00.hc]]
 All files | Selected Files: delete move to page

You are not allowed to attach a file to this page.