astro/doc/solar-eclipse-yangshan-2009.svg
starainrt 3ffdbe0034
feat: 扩展天文计算能力
- 新增日食、月食、本地可见性、中心线、半影区域、SVG 图示与沙罗周期信息
- 新增行星冲合、留、方照、物理星历、视直径、相位、亮肢角、轨道节点等计算
- 新增木星伽利略卫星位置、现象与接触事件计算
- 新增恒星星表、星座判定、自行修正与观测辅助能力
- 新增 coord、formula、orbit、sundial、lite/sun、lite/moon 等扩展包
- 完善农历年号、月相英文别名、视差角、大气质量、折射、日晷与双星计算
- 增加 NASA、JPL Horizons、IMCCE 等回归测试数据与基线测试
- 重构基础算法文件组织,补充大量公开 API 注释和语义回归测试
- 更新中文和英文 README,补充示例、精度说明、SVG 配图
2026-05-01 22:38:44 +08:00

1 line
13 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<svg xmlns="http://www.w3.org/2000/svg" width="920" height="720" viewBox="0 0 920 720"><defs><radialGradient id="se-sun" cx="40%" cy="34%" r="64%"><stop offset="0%" stop-color="#fff8bb"/><stop offset="58%" stop-color="#ffd55f"/><stop offset="100%" stop-color="#f5a623"/></radialGradient></defs><rect width="100%" height="100%" fill="#efefed"/><rect x="22" y="18" width="876.000" height="684.000" fill="#ffffff" stroke="#c9c9c6" stroke-width="1.2"/><text x="460.000" y="44" fill="#111111" font-family="Georgia, 'Times New Roman', serif" font-size="26" font-weight="700" text-anchor="middle">2009-07-22 站心日全食</text><line x1="382.000" y1="57" x2="538.000" y2="57" stroke="#555" stroke-width="1"/><text x="460.000" y="86.000" fill="#222" font-family="Georgia, 'Times New Roman', serif" font-size="14" text-anchor="middle">经度=121.9850 纬度=30.6167 食型=日全食 食分=1.0770 掩食比=1.0000</text><text x="460.000" y="109.000" fill="#333" font-family="Georgia, 'Times New Roman', serif" font-size="13" text-anchor="middle">食甚2009-07-22 09:40:20 CST 太阳高度 57.29 度 太阳位于巨蟹座</text><text x="460.000" y="132.000" fill="#333" font-family="Georgia, 'Times New Roman', serif" font-size="13" text-anchor="middle">沙罗 136 第 37/71 个成员 全食历时 00:05:57</text><text x="46.000" y="156.000" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="14" font-weight="700">全局路径</text><circle cx="319.200" cy="303.800" r="42.091" fill="url(#se-sun)" stroke="#c78211" stroke-width="1.4"/><circle cx="319.200" cy="303.800" r="44.091" fill="none" stroke="#ffec92" stroke-opacity="0.58" stroke-width="7"/><text x="319.200" y="244.709" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="14" font-weight="700" text-anchor="middle"></text><text x="257.109" y="307.800" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="14" font-weight="700" text-anchor="middle"></text><text x="381.291" y="307.800" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="14" font-weight="700" text-anchor="middle">西</text><text x="319.200" y="372.891" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="14" font-weight="700" text-anchor="middle"></text><line class="ecliptic-line" x1="449.497" y1="276.063" x2="188.903" y2="331.537" stroke="#666" stroke-width="1" stroke-dasharray="4 3" opacity="0.82"/><text x="188.903" y="325.537" fill="#444" font-family="Georgia, 'Times New Roman', serif" font-size="12" text-anchor="end">黄道</text><path d="M 402.604 277.936 L 396.814 279.508 L 391.075 281.096 L 385.386 282.700 L 379.746 284.320 L 374.155 285.957 L 368.611 287.611 L 363.113 289.282 L 357.661 290.972 L 352.254 292.679 L 346.890 294.406 L 341.569 296.151 L 336.290 297.915 L 331.051 299.698 L 325.851 301.502 L 322.266 302.765 L 320.690 303.325 L 319.219 303.851 L 316.166 304.952 L 315.566 305.169 L 310.478 307.034 L 305.425 308.919 L 300.406 310.826 L 295.420 312.754 L 290.465 314.703 L 285.540 316.675 L 280.645 318.668 L 275.777 320.684 L 270.936 322.722 L 266.119 324.782 L 261.327 326.865 L 256.558 328.972 L 251.810 331.101 L 247.082 333.253 L 242.373 335.428 L 238.319 337.326" fill="none" stroke="#555555" stroke-width="1.2" stroke-dasharray="5 4" stroke-linecap="round" stroke-linejoin="round"/><circle class="event-moon" data-label="C1" cx="402.604" cy="277.936" r="45.228" fill="none" stroke="#24518a" stroke-width="1.3" stroke-dasharray="5 4"/><circle class="event-center" data-label="C1" cx="402.604" cy="277.936" r="2.6" fill="#ffffff" stroke="#24518a" stroke-width="1.2"/><circle class="event-center" data-label="C2" cx="322.266" cy="302.765" r="2.6" fill="#ffffff" stroke="#24518a" stroke-width="1.2"/><circle class="event-moon" data-label="Greatest" cx="319.219" cy="303.851" r="45.370" fill="none" stroke="#111111" stroke-width="1.3" stroke-dasharray="5 4"/><circle class="event-center" data-label="Greatest" cx="319.219" cy="303.851" r="2.6" fill="#ffffff" stroke="#111111" stroke-width="1.2"/><circle class="event-center" data-label="C3" cx="316.166" cy="304.952" r="2.6" fill="#ffffff" stroke="#24518a" stroke-width="1.2"/><circle class="event-moon" data-label="C4" cx="238.319" cy="337.326" r="45.460" fill="none" stroke="#24518a" stroke-width="1.3" stroke-dasharray="5 4"/><circle class="event-center" data-label="C4" cx="238.319" cy="337.326" r="2.6" fill="#ffffff" stroke="#24518a" stroke-width="1.2"/><line class="contact-leader" x1="359.403" y1="291.333" x2="412.624" y2="264.469" stroke="#c96b6b" stroke-width="0.8" opacity="0.58"/><circle class="contact-point" cx="359.403" cy="291.333" r="3.2" fill="#b51616" stroke="#ffffff" stroke-width="0.8"/><text x="412.624" y="268.469" fill="#b51616" font-family="Georgia, 'Times New Roman', serif" font-size="11" font-weight="700" text-anchor="start">C1 287°</text><line class="contact-leader" x1="279.320" y1="317.263" x2="224.294" y2="350.949" stroke="#c96b6b" stroke-width="0.8" opacity="0.58"/><circle class="contact-point" cx="279.320" cy="317.263" r="3.2" fill="#b51616" stroke="#ffffff" stroke-width="0.8"/><text x="224.294" y="354.949" fill="#b51616" font-family="Georgia, 'Times New Roman', serif" font-size="11" font-weight="700" text-anchor="end">C2 109°</text><line class="contact-leader" x1="358.552" y1="288.863" x2="411.426" y2="259.190" stroke="#c96b6b" stroke-width="0.8" opacity="0.58"/><circle class="contact-point" cx="358.552" cy="288.863" r="3.2" fill="#b51616" stroke="#ffffff" stroke-width="0.8"/><text x="411.426" y="263.190" fill="#b51616" font-family="Georgia, 'Times New Roman', serif" font-size="11" font-weight="700" text-anchor="start">C3 291°</text><line class="contact-leader" x1="280.317" y1="319.918" x2="225.388" y2="356.457" stroke="#c96b6b" stroke-width="0.8" opacity="0.58"/><circle class="contact-point" cx="280.317" cy="319.918" r="3.2" fill="#b51616" stroke="#ffffff" stroke-width="0.8"/><text x="225.388" y="360.457" fill="#b51616" font-family="Georgia, 'Times New Roman', serif" font-size="11" font-weight="700" text-anchor="end">C4 113°</text><line class="event-leader" x1="402.604" y1="277.936" x2="341.279" y2="232.743" stroke="#24518a" stroke-width="0.8" stroke-dasharray="3 3" opacity="0.72"/><text x="325.948" y="223.944" fill="#174f8a" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="end">C1</text><line class="event-leader" x1="322.266" y1="302.765" x2="273.026" y2="269.241" stroke="#24518a" stroke-width="0.8" stroke-dasharray="3 3" opacity="0.72"/><text x="260.716" y="263.360" fill="#174f8a" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="end">C2</text><line class="event-leader" x1="319.219" y1="303.851" x2="291.174" y2="357.347" stroke="#24518a" stroke-width="0.8" stroke-dasharray="3 3" opacity="0.72"/><text x="284.163" y="373.221" fill="#174f8a" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="end">食甚</text><line class="event-leader" x1="316.166" y1="304.952" x2="373.117" y2="330.998" stroke="#24518a" stroke-width="0.8" stroke-dasharray="3 3" opacity="0.72"/><text x="387.355" y="340.009" fill="#174f8a" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="start">C3</text><line class="event-leader" x1="238.319" y1="337.326" x2="288.505" y2="370.820" stroke="#24518a" stroke-width="0.8" stroke-dasharray="3 3" opacity="0.72"/><text x="301.052" y="381.693" fill="#174f8a" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="start">C4</text><text x="46.000" y="467.600" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="14" font-weight="700">阶段视圆图</text><rect x="46.000" y="477.600" width="157.600" height="164.400" fill="#fbfbf8" stroke="#d8d2c4" stroke-width="1"/><text x="124.800" y="495.600" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="middle">C1 初亏</text><circle cx="124.800" cy="558.800" r="20.901" fill="url(#se-sun)" stroke="#c78211" stroke-width="1"/><circle cx="124.800" cy="558.800" r="22.101" fill="none" stroke="#ffec92" stroke-opacity="0.55" stroke-width="3"/><circle class="stage-moon" cx="166.215" cy="545.957" r="22.459" fill="#050505" stroke="#111111" stroke-width="1.1"/><circle class="stage-contact-point" cx="144.763" cy="552.609" r="2.5" fill="#b51616" stroke="#ffffff" stroke-width="0.8"/><text x="124.800" y="630.000" fill="#444" font-family="Georgia, 'Times New Roman', serif" font-size="11" text-anchor="middle">08:23:54</text><rect x="213.600" y="477.600" width="157.600" height="164.400" fill="#fbfbf8" stroke="#d8d2c4" stroke-width="1"/><text x="292.400" y="495.600" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="middle">C2 食既</text><circle cx="292.400" cy="558.800" r="20.901" fill="url(#se-sun)" stroke="#c78211" stroke-width="1"/><circle cx="292.400" cy="558.800" r="22.101" fill="none" stroke="#ffec92" stroke-opacity="0.55" stroke-width="3"/><circle class="stage-moon" cx="293.923" cy="558.286" r="22.527" fill="#050505" stroke="#111111" stroke-width="1.1"/><circle class="stage-contact-point" cx="272.597" cy="565.485" r="2.5" fill="#b51616" stroke="#ffffff" stroke-width="0.8"/><text x="292.400" y="630.000" fill="#444" font-family="Georgia, 'Times New Roman', serif" font-size="11" text-anchor="middle">09:37:22</text><rect x="381.200" y="477.600" width="157.600" height="164.400" fill="#fbfbf8" stroke="#d8d2c4" stroke-width="1"/><text x="460.000" y="495.600" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="middle">食甚</text><circle cx="460.000" cy="558.800" r="20.901" fill="url(#se-sun)" stroke="#c78211" stroke-width="1"/><circle cx="460.000" cy="558.800" r="22.101" fill="none" stroke="#ffec92" stroke-opacity="0.55" stroke-width="3"/><circle class="stage-moon" cx="460.009" cy="558.826" r="22.529" fill="#050505" stroke="#111111" stroke-width="1.1"/><text x="460.000" y="630.000" fill="#444" font-family="Georgia, 'Times New Roman', serif" font-size="11" text-anchor="middle">09:40:20</text><rect x="548.800" y="477.600" width="157.600" height="164.400" fill="#fbfbf8" stroke="#d8d2c4" stroke-width="1"/><text x="627.600" y="495.600" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="middle">C3 生光</text><circle cx="627.600" cy="558.800" r="20.901" fill="url(#se-sun)" stroke="#c78211" stroke-width="1"/><circle cx="627.600" cy="558.800" r="22.101" fill="none" stroke="#ffec92" stroke-opacity="0.55" stroke-width="3"/><circle class="stage-moon" cx="626.093" cy="559.372" r="22.531" fill="#050505" stroke="#111111" stroke-width="1.1"/><circle class="stage-contact-point" cx="647.141" cy="551.383" r="2.5" fill="#b51616" stroke="#ffffff" stroke-width="0.8"/><text x="627.600" y="630.000" fill="#444" font-family="Georgia, 'Times New Roman', serif" font-size="11" text-anchor="middle">09:43:19</text><rect x="716.400" y="477.600" width="157.600" height="164.400" fill="#fbfbf8" stroke="#d8d2c4" stroke-width="1"/><text x="795.200" y="495.600" fill="#111" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="700" text-anchor="middle">C4 复圆</text><circle cx="795.200" cy="558.800" r="20.901" fill="url(#se-sun)" stroke="#c78211" stroke-width="1"/><circle cx="795.200" cy="558.800" r="22.101" fill="none" stroke="#ffec92" stroke-opacity="0.55" stroke-width="3"/><circle class="stage-moon" cx="755.037" cy="575.448" r="22.574" fill="#050505" stroke="#111111" stroke-width="1.1"/><circle class="stage-contact-point" cx="775.892" cy="566.803" r="2.5" fill="#b51616" stroke="#ffffff" stroke-width="0.8"/><text x="795.200" y="630.000" fill="#444" font-family="Georgia, 'Times New Roman', serif" font-size="11" text-anchor="middle">11:03:13</text><text x="40.000" y="666.000" fill="#333" font-family="Georgia, 'Times New Roman', serif" font-size="12">太阳固定在中心;月球路径使用站心切平面。图上左东右西,向上为北。</text><text x="40.000" y="686.000" fill="#555" font-family="Georgia, 'Times New Roman', serif" font-size="12">上方为全局路径C2/C3 只标点位;下方为各阶段独立视圆图。接触点位置角从天球北点起向东量。</text><rect x="604.400" y="191.800" width="260.000" height="117.000" fill="#fbfbf8" stroke="#d8d2c4" stroke-width="1"/><text x="616.400" y="211.800" fill="#111111" font-family="Georgia, 'Times New Roman', serif" font-size="13" font-weight="700">接触时刻 (CST)</text><text x="616.400" y="229.300" fill="#333333" font-family="Georgia, 'Times New Roman', serif" font-size="11.5">C1 初亏 08:23:54 方位 287.2°</text><text x="616.400" y="246.800" fill="#333333" font-family="Georgia, 'Times New Roman', serif" font-size="11.5">C2 食既 09:37:22 方位 108.7°</text><text x="616.400" y="264.300" fill="#333333" font-family="Georgia, 'Times New Roman', serif" font-size="11.5">GE 食甚 09:40:20</text><text x="616.400" y="281.800" fill="#333333" font-family="Georgia, 'Times New Roman', serif" font-size="11.5">C3 生光 09:43:19 方位 290.8°</text><text x="616.400" y="299.300" fill="#333333" font-family="Georgia, 'Times New Roman', serif" font-size="11.5">C4 复圆 11:03:13 方位 112.5°</text></svg>