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
@@ -8,7 +8,7 @@ import (
func TestSolarEclipseAnnularEnvelopeContainsShadow(t *testing.T) {
for _, date := range [][3]int{{4005, 4, 22}, {4329, 6, 12}} {
t.Run(fmt.Sprintf("%04d-%02d-%02d", date[0], date[1], date[2]), func(t *testing.T) {
result := SolarEclipsePartialFootprints(JDECalc(date[0], date[1], float64(date[2])), SolarEclipsePartialFootprintOptions{
result := SolarEclipsePartialFootprints(JDCalc(date[0], date[1], float64(date[2])), SolarEclipsePartialFootprintOptions{
StepDays: 2.0 / 1440, BoundaryPoints: 96, CentralShadowStepDays: 1.0 / 1440,
})
if len(result.CentralBandSegments) == 0 {
@@ -41,7 +41,7 @@ func TestSolarEclipseAnnularEnvelopeContainsShadow(t *testing.T) {
func BenchmarkSolarEclipseCentralEnvelopePath(b *testing.B) {
for _, date := range [][3]int{{4005, 4, 22}, {4329, 6, 12}, {2024, 4, 8}} {
b.Run(fmt.Sprint(date), func(b *testing.B) {
seed := JDECalc(date[0], date[1], float64(date[2]))
seed := JDCalc(date[0], date[1], float64(date[2]))
b.ReportAllocs()
for i := 0; i < b.N; i++ {
SolarEclipseCentralPath(seed, SolarEclipsePathOptions{StepDays: 2.0 / 1440, TargetSpacingKM: 150})