feat: 完善时标与天象几何计算并扩展输出接口

- 新增时标、ΔT 模型、质心时间与 UT1 支持
- 改进日月食、月掩、行星事件及路径边界计算
- 完善恒星三维自行与动态距离传播
- 扩展 SVG、GeoJSON、KML 输出与底层距离换算工具
- 整理中英文手册、示例资源及回归测试
This commit is contained in:
2026-09-23 18:55:12 +08:00
parent 1f31a9b5b5
commit 16c62a97d5
503 changed files with 33290 additions and 9471 deletions
+3 -3
View File
@@ -42,7 +42,7 @@ func sarosTestWindows(t *testing.T, phase int) map[int]sarosTestWindow {
windows := make(map[int]sarosTestWindow, len(anchors)+len(overrides))
for index, magic := range anchors {
value := uint32(magic)
headTT := basic.JDECalc(
headTT := basic.JDCalc(
int((value>>sarosTestAnchorYearShift)&sarosTestAnchorYearMask)-sarosTestAnchorYearOffset,
int((value>>sarosTestAnchorMonthShift)&sarosTestAnchorMonthMask),
float64((value>>sarosTestAnchorDayShift)&sarosTestAnchorDayMask),
@@ -56,7 +56,7 @@ func sarosTestWindows(t *testing.T, phase int) map[int]sarosTestWindow {
}
}
for _, override := range overrides {
headTT := basic.JDECalc(int(override.HeadYear), int(override.HeadMonth), float64(override.HeadDay))
headTT := basic.JDCalc(int(override.HeadYear), int(override.HeadMonth), float64(override.HeadDay))
if math.IsNaN(headTT) {
t.Fatalf("invalid override head for series %d", override.Series)
}
@@ -214,7 +214,7 @@ func TestSarosOverrideWindowsCoverDeclaredMemberRange(t *testing.T) {
}
cycleDays := float64(sarosTestAnchorMemberInterval) * sarosTestSynodicMonthDays
for _, override := range overrides {
headTT := basic.JDECalc(int(override.HeadYear), int(override.HeadMonth), float64(override.HeadDay))
headTT := basic.JDCalc(int(override.HeadYear), int(override.HeadMonth), float64(override.HeadDay))
for _, member := range []int{1, int(override.Count)} {
ttJDE := headTT + float64(member-1-int(override.MemberOffset))*cycleDays
info, ok := sarosTestInfo(ttJDE, phase)