feat: 完善日月食与月掩几何链路并扩展历法接口

- 新增日月食中心带、偏食带、阴影足迹、等时线、食分线及升落边界计算,支持极区与混合食拓扑
- 新增日食单时刻阴影求解器、站心状态查询、批量采样和 ΔT 覆盖接口
- 重构恒星与行星月掩路径,补充有限盘面接触、站心修正、掩带宽度、极区投影及升落边界
- 扩展 SVG 与 GeoJSON 输出,支持详细面板、全球/极区/地球投影、边界闭合、时间标记和拓扑签名
- 扩展日月食候选搜索、局地搜索、沙罗序列预计算与范围外推,补充系列锚点和成员一致性校验
- 补齐古历纪年、儒略历独有闰日、多公历候选、历法改革跨日及精确日期运算接口
- 优化 ΔT、章动、恒星时、月球地平线、事件根搜索和本地星历缓存,降低重复计算开销并提升边界稳定
This commit is contained in:
2026-09-17 12:27:40 +08:00
parent 9ee2163cc7
commit 2bf8478639
428 changed files with 85981 additions and 7998 deletions
+10 -2
View File
@@ -209,9 +209,17 @@ func Nutation1980(jd float64) (float64, float64) {
return dpsi * deg, deps * deg
}
// Nutation2000B 计算 IAU 2000B 章动模型
// 返回交角章动 (de) 和黄经章动 (dp),单位为度
// Nutation2000B IAU 2000B 章动,返回 (黄经章动, 交角章动),单位度 / nutation in longitude and obliquity in degrees.
func Nutation2000B(jd float64) (float64, float64) {
if dpsi, deps, ok := nutationMemoLoad(jd); ok {
return dpsi, deps
}
dpsi, deps := nutation2000BCompute(jd)
nutationMemoStore(jd, dpsi, deps)
return dpsi, deps
}
func nutation2000BCompute(jd float64) (float64, float64) {
// 常量定义
as2r := 4.848136811095359935899141e-6 // 角秒到弧度的转换因子
twopi := 6.283185307179586476925287 // 2π