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