【发布时间】:2015-07-04 04:16:32
【问题描述】:
我正在尝试用 C++ 编写二维空间模拟。在其中,您可以创建一个质量 (m) 以速度 (v) 沿方向 (d) 在位置 (x,y) 移动的行星。在这个星球上还有一个物体(即恒星)具有引力。该物体具有质量 (M) 和位置 (X,Y)。我想创建一个函数,在给定时间 t 后返回行星的位置。这颗行星不一定在轨道上,但如果速度和距离允许,它可能会在轨道上。我知道它涉及开普勒方程,但我自己无法弄清楚它的确切数学实现。任何帮助将不胜感激。
我当前的更新函数根本没有考虑恒星或质量。
double xPos, yPos, velocity, direction;
void Planet::update(int t){
xPos += t * velocity * cos(direction / 180 * 3.14);
yPos += t * velocity * sin(direction / 180 * 3.14);
}
【问题讨论】:
-
不清楚您希望从 SO 用户那里得到什么。我不清楚您是否需要数学公式的帮助或将数学公式转换为 C++ 代码。
-
是的,也许我应该在数学中问这个问题。
-
@JakeP 您可能会发现与此问题相关的一件烦人的事情是,蜈蚣运动使您远离代数,更多地进入微积分,因为您希望在某一点上发生瞬时变化。 (蜈蚣运动是:直奔一段,然后计算你需要转动多少才能使你的下一段保持在实际曲线上。)我问了一个问题here,但我很难得到直接的回应它:(
标签: c++ math physics game-physics orbital-mechanics