1、写在前面
GoldTime 工具是我大概20年前写的,主要用于对时间进行换算,解决GPS周、秒与我们习惯的年月日的对应问题,那是刚开始从事GPS定位算法的研究,正做硕士论文,开始学习C++,学习面向对象,程序猿一点点的开始成长了…
时至2020,疫情期间,宅家天天看时间,辅导孩子作业,偏偏有一个内容需要透过窗户观察太阳和月亮的变化,五年级的小娃娃,听不懂理工老爸的讲解(开来不能当老师),算了吧,换个思路,拿绝招,会编程的老爸,写个程序,动态转起来,就能明白太阳、地球和月亮的关系了吗…
2 、需求
- 需要显示太阳、月亮和地球的三体关系
- 需要显示太阳、月亮的高度和方位
3、分析和算法
该问题看似简单,需要相当多的天文知识。包括:
太阳、地球、月球的三体关系
时间系统
地球自转
历法
球面三角计算
相关知识可以查阅《简易天文学》, Jean Meeus写的《Astronomical Algorithms 》。
我们生活的宇宙是一个时间单向的系统,所有的东西都烙在时间轴上,因此,时间才是最关键的东西,我想起了十几年前写的小工具程序,为了省时间,改改得了吧。
(1)三体关系计算
需要计算太阳黄道坐标系中地球、月亮的黄经和黄纬,计算方法有近似的也有精度较高的,近似的,实际搞两个椭圆就可以,大家参考《简