计算太阳周围行星的椭圆轨道涉及公式:
e = c / a
其中:
c
是从中心到焦点的距离
a
是从焦点到顶点的距离
当椭圆形状(即在C ++中)不使用焦点,而是使用x和y最大距离时,如何创建程序来计算此类问题?
我目前有一个函数可以在给定(x,y)中心点和x和y长度的情况下创建椭圆。
我在将真正的椭圆轨道函数e= c/a
转换为程序椭圆函数ellipse(x, y, xDistance, yDistance)
时遇到问题。
有没有这样的系统或我将如何实现这一目标?目的是使用每个行星的实际数据绘制围绕太阳的行星轨道的比例模型。
IE: 水星:
答案 0 :(得分:2)
更确切地说:
给定一行L
,称为 directrix ,点F
不在L
上,称为焦点,以及正数e
。让d(X,L)
表示从点X
到L
的距离,让|X|
表示X
的范数。点C
的{{1}}集满足
X
带有 eccentricity |X - F| = e d(X,L)
的被称为圆锥曲线。如果e
,则称为椭圆,如果e < 1
则称为抛物线,如果e = 1
则称为双曲线 }。
现在你想要的是标准格式中圆锥曲线的笛卡尔方程。如果e > 1
或e < 1
并且准线与e > 1
- 轴平行,则圆锥y
是满足
C
的集合
X = (x,y)
其中x^2 / a^2 + y^2 / [a^2 (1 - e^2)] = 1
和a = e d / (1 - e^2)
是从焦点到准线的距离。
如果d = d(F,L)
(以及e < 1
),请a > 0
。然后我们以标准形式
b = a sqrt(1 - e^2)
其中x^2 / a^2 + y^2 / b^2 = 1
分别称为半主要和半短轴。在这种形式,
a,b
,(0,0)
处与x
- 轴交叉,(d,0)
,(-c,0)
处(c,0)
和c = a e
,c^2 = a^2 - b^2
- 轴上的两个顶点位于x
,(-a,0)
和(a,0)
- 轴上的两个顶点位于y
,(0,-b)
点。因此,(0,b)
是从a
- 顶点到中心的距离,不是到焦点的距离。但请注意,x
是从c
- 顶点到焦点的距离。这可能会引起混淆。
您可以看到y
,a
是您遗失的b
,xDistance
。您似乎已获得yDistance
和a
,因此您只需按上述方式计算e
。
当然,您可以随时查看ellipse @wikipedia。 This figure有助于查看我之前的说明,但请注意我的b
在那里表示为c
。