C#: 星座星盘计算算法

前一篇提到计算八卦五行的算法,这里要跟大家分享一个星座星盘的算法。你们可能觉得笔者怎么开始研究这些玄幻的东西了,确实笔者觉得有一些真的是很扯,不过笔者的目的是为了研究大数据。好了,说到星盘笔者发现新浪星座有个很不错的星盘解说的http://astro.sina.com.cn/pc/zodiac.html大家可以试一下,笔者就觉得分析出来的星盘那个图很不错看起来很专业,图里面的也是数据格式的而不是底下文字描述的。后来想想,星座这种东西应该国外比国内更多研究,于是就搜了一些英文资料。(这里也鼓励大家多学一门外语总是好的)。居然无意中发现新浪星盘用的就是国外的Astrolog,还是开源的,从版本上看是5.416,而这个Astrolog是一直有更新的,目前已经是6.10版本了。新浪还有不少收费占卜的,笔者没试过,因为这并不是笔者看重的。


不敢独享,跟大家分享一下,官网是http://www.astrolog.org/可以下载到源代码,是C++的,很明显大家猜笔者会把这个改成C#版的,更重要的是,改成中文版的。哈哈,笔者也这么认为的,不过代码量太大,就不重写了,另外由于里面有不少C的写法比如sprintf要支持中文比较麻烦,而且已经有人做过中文版软件,这不是我目的,所以打包成dll让C#调用,中文部分根据输出在C#代码处理会比较可行。

在代码之前,笔者先分享一些基本知识,首先是12星座。



其次是星和行星



上面的太阳(Sun)和月亮(Moon)就不必解释了,其他的行星都给出了英文名、符号和解释。网络的图没有冥王星英文是(Pluto)。


好了开始代码部分,首先我们要添加用于C#访问的函数,

#define API_EXPORT __declspec(dllexport)

先这里做个预定义,后面每个函数都要用到。使用功能之前要先给astrolog程序来做个初始化

EXTERN_C API_EXPORT void __stdcall init()
{
is.S = stdout;
FProcessSwitchFile(DEFAULT_INFOFILE, NULL);
is.fSzPersist = fTrue;
}


初始化好了就可以调用实质的函数来生成星图,保存星图到文件夹,并把右侧数据信息保存到字符串来返回

EXTERN_C API_EXP

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值