亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? charts.c

?? 一個占星術算命游戲
?? C
?? 第 1 頁 / 共 3 頁
字號:

  /* First find zenith location on Earth of each object. */

  for (i = 1; i <= tot; i++) {
    lonz[i] = DTOR(planet[i]); latz[i] = DTOR(planetalt[i]);
    EclToEqu(&lonz[i], &latz[i]);
  }

  /* Then, convert this to local horizon altitude and azimuth. */

  for (i = 1; i <= tot; i++) if (i != _MC) {
    lonz[i] = DTOR(Mod(RTOD(lonz[_MC]-lonz[i]+lon)));
    lonz[i] = DTOR(Mod(RTOD(lonz[i]-lon+PI/2.0)));
    EquToLocal(&lonz[i], &latz[i], PI/2.0-lat);
    azi[i] = DEGREES-RTOD(lonz[i]); alt[i] = RTOD(latz[i]);
  }

  /* Now, actually print the location of each object. */

  fprintf(S,
    "Body Altitude Azimuth  Azi. Vector   %s Vector    Moon Vector\n\n",
    centerplanet ? " Sun" : " Earth");
  for (k = 1; k <= tot; k++) {
    i = k <= BASE ? k : BASE+starname[k-BASE];
    if (ignore[i] || !IsThing(i))
      continue;
    AnsiColor(objectansi[i]);
    fprintf(S, "%-4.4s: ", objectname[i]);
    PrintAltitude(alt[i]);

    /* Determine directional vector based on azimuth. */

    j = (int) (FRACT(azi[i])*60.0);
    fprintf(S, " %3d%c%02d'", (int) azi[i], DEGR1, j);
    sx = cos(DTOR(azi[i])); sy = sin(DTOR(azi[i]));
    if (dabs(sx) < dabs(sy)) {
      vx = dabs(sx / sy); vy = 1.0;
    } else {
      vy = dabs(sy / sx); vx = 1.0;
    }
    fprintf(S, " (%.2f%c %.2f%c)",
      vy, sy < 0.0 ? 's' : 'n', vx, sx > 0.0 ? 'e' : 'w');

    /* Determine distance vector of current object from Sun and Moon. */

    vx = azi[1]-azi[i]; vy = azi[2]-azi[i];
    fprintf(S, " [%6.1f%6.1f] [%6.1f%6.1f]",
      dabs(vx) < DEGHALF ? vx : Sgn(vx)*(DEGREES-dabs(vx)), alt[1]-alt[i],
      dabs(vy) < DEGHALF ? vy : Sgn(vy)*(DEGREES-dabs(vy)), alt[2]-alt[i]);
    if (i >= U_LO) {
      if (i <= U_HI)
        fprintf(S, "  Uranian #%d", i-U_LO+1);
      else
        fprintf(S, "  Star #%2d", i-S_LO+1);
    }
    printl();
  }
  AnsiColor(DEFAULT);
}


/* Display x,y,z locations of each body (in AU) with respect to the Sun */
/* (or whatever the specified center planet is), as in the -S switch.   */
/* These values were already determined when calculating the planet     */
/* positions themselves, so this procedure is basically just a loop.    */

void ChartSpace()
{
  real x, y, z;
  int i;

  fprintf(S, "Body     Angle    X axis    Y axis    Z axis    Length\n");
  for (i = 0; i <= BASE; i++) {
    if (ignore[i] || i == 2 || !IsObject(i))
      continue;
    AnsiColor(objectansi[i]);
    fprintf(S, "%c%c%c%c: ", OBJNAM(i),
      objectname[i][3] ? objectname[i][3] : ' ');
    x = spacex[i]; y = spacey[i]; z = spacez[i];
    fprintf(S, "[%7.2f] [%7.2f] [%7.3f] [%7.3f] [%7.3f]",
      planet[i], x, y, z, sqrt(x*x+y*y+z*z));
    if (i >= U_LO) {
      if (i <= U_HI)
        fprintf(S, "  Uranian #%d", i-U_LO+1);
      else
        fprintf(S, "  Star #%2d", i-S_LO+1);
    }
    printl();
  }
  AnsiColor(DEFAULT);
}


/* Print the locations of the astro-graph lines on the Earth as specified */
/* with the -L switch. This includes Midheaven and Nadir lines, zenith    */
/* positions, and locations of Ascendant and Descendant lines.            */

void ChartAstroGraph()
{
  crosstruct PTR c;
  real planet1[TOTAL+1], planet2[TOTAL+1], mc[TOTAL+1], ic[TOTAL+1],
    as[TOTAL+1], ds[TOTAL+1], as1[TOTAL+1], ds1[TOTAL+1],
    lo = Lon, longm, w, x, y, z, ad, oa, am, od, dm;
  int occurcount = 0, tot = total, i, j, k, l, m, n;

  if (exdisplay & DASHL0)
    {
    Allocate(c, sizeof(crosstruct), crosstruct PTR);
    if (c == NULL
#ifdef PC
      /* For PC's the array better not cross a segment boundary. */
      || HIWORD(LOWORD(c) + sizeof(crosstruct)) > 0
#endif
      ) {
      PrintError("Not enough memory for crossing table.");
      return;
    }
  }

#ifdef MATRIX
  for (i = 1; i <= total; i++) {
    planet1[i] = DTOR(planet[i]);
    planet2[i] = DTOR(planetalt[i]);      /* Calculate zenith location on */
    EclToEqu(&planet1[i], &planet2[i]);   /* Earth of each object.        */
  }

  /* Print header. */

  fprintf(S, "Object :");
  for (j = 0, i = 1; i <= total; i++)
    if (!ignore[i] && IsThing(i)) {
      AnsiColor(objectansi[i]);
      fprintf(S, " %c%c%c", OBJNAM(i));
      j++;
      if (column80 && j >= 17) {
        tot = i;
        i = total;
      }
    }
  AnsiColor(DEFAULT);
  fprintf(S, "\n------ :");
  for (i = 1; i <= tot; i++)
    if (!ignore[i] && IsThing(i))
      fprintf(S, " ###");

  /* Print the longitude locations of the Midheaven lines. */

  fprintf(S, "\nMidheav: ");
  if (lo < 0.0)
    lo += DEGREES;
  for (i = 1; i <= tot; i++)
    if (!ignore[i] && IsThing(i)) {
    AnsiColor(objectansi[i]);
    x = DTOR(MC)-planet1[i];
    if (x < 0.0)
      x += 2.0*PI;
    if (x > PI)
      x -= 2.0*PI;
    z = lo+RTOD(x);
    if (z > DEGHALF)
      z -= DEGREES;
    mc[i] = z;
    fprintf(S, "%3.0f%c", dabs(z), z < 0.0 ? 'e' : 'w');
  }
  AnsiColor(DEFAULT);

  /* The Nadir lines are just always 180 degrees away from the Midheaven. */

  fprintf(S, "\nNadir  : ");
  for (i = 1; i <= tot; i++)
    if (!ignore[i] && IsThing(i)) {
    AnsiColor(objectansi[i]);
    z = mc[i] + DEGHALF;
    if (z > DEGHALF)
      z -= DEGREES;
    ic[i] = z;
    fprintf(S, "%3.0f%c", dabs(z), z < 0.0 ? 'e' : 'w');
  }
  AnsiColor(DEFAULT);

  /* Print the Zenith latitude locations. */

  fprintf(S, "\nZenith : ");
  for (i = 1; i <= tot; i++)
    if (!ignore[i] && IsThing(i)) {
      AnsiColor(objectansi[i]);
      y = RTOD(planet2[i]);
      fprintf(S, "%3.0f%c", dabs(y), y < 0.0 ? 's' : 'n');
      as[i] = ds[i] = as1[i] = ds1[i] = LARGE;
    }
  printl2();

  /* Now print the locations of Ascendant and Descendant lines. Since these */
  /* are curvy, we loop through the latitudes, and for each object at each  */
  /* latitude, print the longitude location of the line in question.        */

  longm = DTOR(Mod(MC+lo));
  for (j = 80; j >= -80; j -= graphstep) {
    AnsiColor(DEFAULT); 
    fprintf(S, "Asc@%2d%c: ", j >= 0 ? j : -j, j < 0 ? 's' : 'n');
    for (i = 1; i <= tot; i++)
      if (!ignore[i] && IsThing(i)) {
      AnsiColor(objectansi[i]);
      ad = tan(planet2[i])*tan(DTOR(j));
      if (ad*ad > 1.0) {
        fprintf(S, " -- ");
        as1[i] = ds1[i] = ret2[i] = LARGE;
      } else {
        ad = ASIN(ad);
        oa = planet1[i]-ad;
        if (oa < 0.0)
          oa += 2.0*PI;
        am = oa-PI/2.0;
        if (am < 0.0)
          am += 2.0*PI;
        z = longm-am;
        if (z < 0.0)
          z += 2.0*PI;
        if (z > PI)
          z -= 2.0*PI;
        as1[i] = as[i];
        as[i] = z = RTOD(z);
        ret2[i] = ad;
        fprintf(S, "%3.0f%c", dabs(z), z < 0.0 ? 'e' : 'w');
      }
    }

    /* Again, the Descendant position is related to the Ascendant's,  */
    /* being a mirror image, so it can be calculated somewhat easier. */

    AnsiColor(DEFAULT);
    fprintf(S, "\nDsc@%2d%c: ", j >= 0 ? j : -j, j < 0 ? 's' : 'n');
    for (i = 1; i <= tot; i++)
      if (!ignore[i] && IsThing(i)) {
      AnsiColor(objectansi[i]);
      ad = ret2[i];
      if (ad == LARGE)
        fprintf(S, " -- ");
      else {
        od = planet1[i]+ad;
        dm = od+PI/2.0;
        z = longm-dm;
        if (z < 0.0)
          z += 2.0*PI;
        if (z > PI)
          z -= 2.0*PI;
        ds1[i] = ds[i];
        ds[i] = z = RTOD(z);
        fprintf(S, "%3.0f%c", dabs(z), z < 0.0 ? 'e' : 'w');
      }
    }
    printl();
#endif /* MATRIX */

    /* Now, if the -L0 switch is in effect, then take these line positions, */
    /* which we saved in an array above as we were printing them, and       */
    /* calculate and print the latitude crossings.                          */

    if (exdisplay & DASHL0)
      for (l = 1; l <= total; l++) if (!ignore[l] && IsThing(l))
        for (k = 1; k <= total; k++) {
          if (ignore[k] || !IsThing(k))
            continue;
          for (n = 0; n <= 1; n++) {
            x = n ? ds1[l] : as1[l];
            y = n ? ds[l] : as[l];
            for (m = 0; m <= 1; m++) {

            /* Check if Ascendant/Descendant cross Midheaven/Nadir. */

            z = m ? ic[k] : mc[k];
            if (occurcount < MAXCROSS &&
              dabs(x-y) < DEGHALF && Sgn(z-x) != Sgn(z-y)) {
              c->obj1[occurcount] = n ? -l : l;
              c->obj2[occurcount] = m ? -k : k;
              c->lat[occurcount] = (real)j+5.0*dabs(z-y)/dabs(x-y);
              c->lon[occurcount] = z;
              occurcount++;
            }

            /* Check if Ascendant/Descendant cross another Asc/Des. */

            w = m ? ds1[k] : as1[k];
            z = m ? ds[k] : as[k];
            if (occurcount < MAXCROSS && k > l &&
                dabs(x-y)+dabs(w-z) < DEGHALF && Sgn(w-x) != Sgn(z-y)) {
              c->obj1[occurcount] = n ? -l : l;
              c->obj2[occurcount] = 100+(m ? -k : k);
              c->lat[occurcount] = (real)j+5.0*
                dabs(y-z)/(dabs(x-w)+dabs(y-z));
              c->lon[occurcount] = MIN(x, y)+dabs(x-y)*
                dabs(y-z)/(dabs(x-w)+dabs(y-z));
              occurcount++;
            }
          }
        }
    }
  }
  if ((exdisplay & DASHL0) == 0)
    return;
  printl();

  /* Now, print out all the latitude crossings we found.  */
  /* First, we sort them in order of decreasing latitude. */

  for (i = 1; i < occurcount; i++) {
    j = i-1;
    while (j >= 0 && c->lat[j] < c->lat[j+1]) {
      SWAP(c->obj1[j], c->obj1[j+1]); SWAP(c->obj2[j], c->obj2[j+1]);
      SwapReal(&c->lat[j], &c->lat[j+1]); SwapReal(&c->lon[j], &c->lon[j+1]);
      j--;
    }
  }
  for (i = 1; i < occurcount; i++) {
    j = abs(c->obj1[i]);
    AnsiColor(objectansi[j]);
    fprintf(S, "%c%c%c ", OBJNAM(j));
    AnsiColor(elemansi[c->obj1[i] > 0 ? 0 : 2]);
    fprintf(S, "%s ", c->obj1[i] > 0 ? "Ascendant " : "Descendant");
    AnsiColor(WHITE);
    fprintf(S, "crosses ");
    j = abs(c->obj2[i] - (c->obj2[i] < 50 ? 0 : 100));
    AnsiColor(objectansi[j]);
    fprintf(S, "%c%c%c ", OBJNAM(j));
    AnsiColor(elemansi[c->obj2[i] < 50 ?
      (c->obj2[i] > 0 ? 1 : 3) : (c->obj2[i] > 100 ? 0 : 2)]);
    fprintf(S, "%s ", c->obj2[i] < 50 ? (c->obj2[i] > 0 ? "Midheaven " :
      "Nadir     ") : (c->obj2[i] > 100 ? "Ascendant " : "Descendant"));
    j = (int) (FRACT(dabs(c->lon[i]))*60.0);
    AnsiColor(DEFAULT);
    fprintf(S, "at %3d%c%02d'%c, ", (int) dabs(c->lon[i]), DEGR2,
      j, c->lon[i] < 0.0 ? 'E' : 'W');
    j = (int) (FRACT(dabs(c->lat[i]))*60.0);
    fprintf(S, "%2d%c%02d'%c\n", (int) dabs(c->lat[i]), DEGR2,
      j, c->lat[i] < 0.0 ? 'S' : 'N');
  }
  Deallocate(c);
  if (!occurcount) {
    AnsiColor(DEFAULT);
    fprintf(S, "No latitude crossings.\n");
  }
}

/* charts.c */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线亚洲一区二区| 久久精品亚洲麻豆av一区二区 | 亚洲成人综合在线| 国产高清在线精品| 欧美电影免费观看高清完整版在| 亚洲欧美偷拍三级| 国产成人av一区二区三区在线| 欧美日韩电影一区| 亚洲精品日日夜夜| 不卡的av中国片| 国产欧美日韩在线看| 精品亚洲欧美一区| 日韩精品一区二区三区视频播放| 亚洲午夜精品网| 91久久久免费一区二区| 最新欧美精品一区二区三区| 成人h动漫精品一区二| 久久精品这里都是精品| 韩日av一区二区| 欧美一区二区日韩一区二区| 日韩在线播放一区二区| 欧美日韩精品专区| 视频一区二区不卡| 91精品国产一区二区三区香蕉| 亚洲成av人片www| 欧美丝袜丝交足nylons图片| 亚洲综合清纯丝袜自拍| 欧美性欧美巨大黑白大战| 亚洲午夜电影网| 欧美日韩和欧美的一区二区| 日韩中文字幕亚洲一区二区va在线 | 日韩激情一二三区| 欧美一区二区播放| 激情欧美一区二区三区在线观看| 日韩欧美的一区二区| 久久99在线观看| 久久久久久久性| 成人精品视频一区| 亚洲欧美一区二区三区孕妇| 欧美综合在线视频| 日韩av一区二| 久久色视频免费观看| 国产99久久久精品| 亚洲欧美日韩国产成人精品影院 | 久久精品人人做人人爽人人| 国产不卡视频在线观看| 亚洲欧洲日韩综合一区二区| 91福利视频网站| 日韩精品福利网| 久久久久高清精品| 成人动漫一区二区| 午夜精品爽啪视频| 欧美精品一区二区在线播放| 成人av动漫网站| 亚洲电影欧美电影有声小说| 精品久久久久久最新网址| 国产成人av一区| 一区二区三区中文字幕| 日韩欧美一区二区久久婷婷| 成人免费av资源| 日韩精品一卡二卡三卡四卡无卡| 欧美成人vps| 99精品视频一区二区| 日韩和欧美一区二区三区| 久久伊人中文字幕| 91久久免费观看| 国产成人午夜精品5599| 亚洲成人自拍偷拍| 中文字幕在线视频一区| 制服丝袜中文字幕一区| 成人福利视频在线| 美日韩一级片在线观看| 伊人夜夜躁av伊人久久| 久久久久久综合| 91精品国产高清一区二区三区 | 亚洲女性喷水在线观看一区| 精品日韩在线一区| 欧美视频在线观看一区| 成人一区二区三区视频| 日本免费新一区视频| 亚洲女厕所小便bbb| 国产午夜久久久久| 欧美一卡二卡在线| 欧美三片在线视频观看| 97精品国产露脸对白| 国产成人综合网站| 免费成人在线网站| 婷婷六月综合亚洲| 一区二区三区产品免费精品久久75| 国产色一区二区| 日韩精品中文字幕一区二区三区 | 日韩一区二区三区三四区视频在线观看 | 亚洲一二三区视频在线观看| 中文字幕不卡三区| 久久久久久久电影| 欧美本精品男人aⅴ天堂| 欧美体内she精视频| 91丨porny丨在线| 成人免费看视频| 成人午夜伦理影院| 国产成人免费9x9x人网站视频| 久久成人久久鬼色| 美国av一区二区| 麻豆91小视频| 奇米亚洲午夜久久精品| 日韩黄色一级片| 蜜桃视频免费观看一区| 日本美女视频一区二区| 美女在线视频一区| 美腿丝袜亚洲三区| 国产综合久久久久久鬼色| 久久精品国产亚洲a| 精品一区二区免费视频| 国产老妇另类xxxxx| 国产麻豆精品视频| 成人av电影在线| 91一区二区在线| 欧美图区在线视频| 欧美一级专区免费大片| 精品88久久久久88久久久| 精品乱人伦一区二区三区| 久久综合av免费| 亚洲国产电影在线观看| 国产精品视频一二三区| 亚洲欧洲日韩一区二区三区| 亚洲免费在线播放| 日韩精品乱码免费| 精品亚洲成av人在线观看| 丰满白嫩尤物一区二区| 97国产精品videossex| 欧美私模裸体表演在线观看| 欧美一区二区女人| 国产精品美女一区二区| 亚洲午夜精品在线| 国产一区欧美一区| 91丨porny丨中文| 制服丝袜一区二区三区| 欧美国产一区二区| 亚洲午夜电影在线观看| 国产一区二区视频在线播放| 不卡一区在线观看| 欧美一区二区日韩| 成人欧美一区二区三区| 日本不卡视频在线| 成人激情小说网站| 91麻豆精品国产自产在线| 久久久国产综合精品女国产盗摄| 亚洲精品视频免费看| 狠狠久久亚洲欧美| 欧美影院一区二区三区| 久久色在线视频| 午夜亚洲福利老司机| 国产成人精品aa毛片| 在线成人av影院| 一色桃子久久精品亚洲| 日本特黄久久久高潮| 色激情天天射综合网| 国产天堂亚洲国产碰碰| 日本欧美一区二区| 91福利视频久久久久| 中文字幕av在线一区二区三区| 青青草91视频| 欧美日韩在线三级| 国产精品成人免费精品自在线观看 | 99久久99久久精品国产片果冻| 日韩欧美一区二区三区在线| 亚洲乱码中文字幕| 国产成人高清在线| 日韩亚洲欧美一区二区三区| 亚洲精品日产精品乱码不卡| 国模娜娜一区二区三区| 在线综合视频播放| 亚洲福利视频三区| 91久久精品国产91性色tv| 国产精品欧美一区喷水| 国产麻豆成人传媒免费观看| 日韩三区在线观看| 午夜伊人狠狠久久| 在线免费视频一区二区| 亚洲天堂免费在线观看视频| 国产成人综合亚洲91猫咪| 欧美精品一区二区在线播放| 免费看欧美女人艹b| 欧美日韩高清一区二区三区| 亚洲资源中文字幕| 在线观看一区日韩| 亚洲最新在线观看| 色婷婷综合五月| 一区二区三区中文在线观看| 色综合天天综合网天天狠天天 | 日本韩国精品一区二区在线观看| 国产精品午夜在线| 福利一区福利二区| 国产精品视频线看| 成人免费精品视频| 亚洲精品日韩一| 欧美四级电影网| 日本伊人色综合网| 宅男噜噜噜66一区二区66| 免费成人在线网站|