You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中绘制代表行星运行轨迹的椭圆

行星椭圆轨道绘制方案

完全可以绘制,只要基于开普勒轨道的极坐标公式就可以生成完整的椭圆轨迹,以下是具体参数和操作方法:

已提供的3颗行星轨道参数整理

  • 行星1:偏心率e=0.70,半长轴a=900,计算得半短轴≈642,焦点距离椭圆中心630
  • 行星2:偏心率e=0.80,半长轴a=1200,计算得半短轴≈720,焦点距离椭圆中心960
  • 行星3:偏心率e=0.90,半长轴a=1500,计算得半短轴≈654,焦点距离椭圆中心1350

具体绘制方法

手动绘图

你可以将恒星位置设为坐标原点,所有行星轨道共享同一个焦点(恒星点),用椭圆极坐标公式r = a*(1-e²)/(1 + e*cosθ)计算轨迹点:

θ从0到360°按固定间隔(比如每5°)取值,代入公式得到对应极径r,再转换为直角坐标x = r*cosθ、y = r*sinθ,依次连接所有点即可得到平滑的椭圆轨迹。

代码快速生成

用Python的numpy+matplotlib可以快速输出可视化的轨道图,参考代码如下:

import numpy as np
import matplotlib.pyplot as plt

# 角度采样,取1000个点保证轨迹平滑
theta = np.linspace(0, 2 * np.pi, 1000)
# 轨道参数:(偏心率e, 半长轴a, 轨道名称)
orbit_params = [(0.7, 900, "行星1"), (0.8, 1200, "行星2"), (0.9, 1500, "行星3")]

plt.figure(figsize=(8, 8), dpi=100)
# 绘制中心恒星
plt.scatter(0, 0, c="#ff8c00", s=200, label="中心恒星")

for e, a, label in orbit_params:
    # 计算半通径
    p = a * (1 - e ** 2)
    # 极坐标计算每个角度对应的极径
    r = p / (1 + e * np.cos(theta))
    # 转换为直角坐标
    x = r * np.cos(theta)
    y = r * np.sin(theta)
    plt.plot(x, y, label=label)

# 等比例坐标轴保证椭圆不变形
plt.axis("equal")
plt.legend()
plt.xlabel("X轴坐标")
plt.ylabel("Y轴坐标")
plt.title("三颗行星轨道椭圆示意图")
plt.grid(alpha=0.3)
plt.show()

运行上述代码即可直接生成带标注的轨道对比图,你可以根据需要调整采样点数量、颜色、尺寸等参数。

内容的提问来源于stack exchange,提问作者Godofredo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:42:00