Swiss 星历表编程接口

发布时间:2024-12-09 07:30

以下是说明文件中的内容:
要用 SWISSEPH 计算一个星体, 你必须按以下步骤做(使用 swetest.c 作为例子). 函数细节将在以后章节解释。

1.
设置星历文件位置, 例如:

swe_set_ephe_path(”C:\\SWEPH\\EPHE”);

2.?
根据你要计算的日期算出其儒略日数:

jul_day_UT = swe_julday(year, month, day, hour, gregflag);

3?.
计算行星星体:

ret_flag = swe_calc_ut(jul_day_UT, planet_no, flag, lon_lat_rad, err_msg);

或恒星:

ret_flag = swe_fixstar_ut(star_nam, jul_day_UT, flag, lon_lat_rad, err_msg);

5.?
计算完后调用 swe_close() 来关闭所有文件并释放内存;

下面是一个最小的示例程序, 它就是源代码中的swemini.c

#include "swephexp.h"
/* 这也将包含  "sweodef.h" */
int main()
{
  char *sp, sdate[AS_MAXCH], snam[40], serr[AS_MAXCH]; 
  int jday = 1, jmon = 1, jyear = 2000;
  double jut = 0.0;
  double tjd_ut, te, x2[6];
  long iflag, iflgret;
  int p;
  iflag = SEFLG_SPEED;
  while (TRUE) {
    printf("\nDate (d.m.y) ?");
    gets(sdate);

/* 如果超过要计算的日期就停止计算*/
    if (*sdate == '.')
      return OK;
    if (sscanf (sdate, "%d%*c%d%*c%d", &jday,&jmon,&jyear) < 1) exit(1);

    /*

    * 我们用要计算的年月日转换成儒略日数

    */
    tjd_ut = swe_julday(jyear,jmon,jday,jut,SE_GREG_CAL);       

    /*

    * 从通用时来计算星历时:加上 delta_t

    */
      /* te = tjd_ut + swe_deltat(tjd_ut); */
    printf("日期: %02d.%02d.%d at 0:00 通用时\n", jday, jmon, jyear);
    printf("行星    \t经度\t纬度\t距离\t速度 long.\n");

    /*

    * a loop over all planets

    */
    for (p = SE_SUN; p <= SE_CHIRON; p++) {
      if (p == SE_EARTH) continue;

/*

* 计算此行星的座标

*/
iflgret = swe_calc_ut(tjd_ut, p, iflag, x2, serr);
        /* Swisseph versions older than 1.60 require the following
          * statement instead */
/* iflgret = swe_calc(te, p, iflag, x2, serr); */

      /*

      * if there is a problem, a negative value is returned and an

      * error message is in serr.

      */
      if (iflgret < 0)

printf("错误: %s\n", serr);

      /*

      * 得到行星编号

      */
      swe_get_planet_name(p, snam);

      /*

      * 显示座标

      */
      printf("%10s\t%11.7f\t%10.7f\t%10.7f\t%10.7f\n",

    snam, x2[0], x2[1], x2[2], x2[3]);
    }
  }
  return OK;
}

另外,原程序中定义了"婚神星"的编号如下:

#define SE_JUNO       
19

网址:Swiss 星历表编程接口 https://mxgxt.com/news/view/108419

相关内容

星路历程
美女明星成长历程……
草根明星成名历程小说
明星私人行程接机算私生行为吗 明星私人行程接机是不是不能接
从童年到明星:回顾体育明星的初始时光与成长历程
明星简历表
星历表
体育明星的成长之路:从草根到巅峰的拼搏历程与心路历程
体育明星成长历程与成就探索:从青少年到巅峰的终极旅程
体育明星的传奇故事:从青涩少年到巅峰巨星的成长历程

随便看看