如何在给定时间后确定身体在2D空间中的位置?

时间:2015-07-04 04:16:32

标签: c++ math physics game-physics orbital-mechanics

我正在尝试用C ++编写2D空间模拟。在其中,您可以创建一个质量(m)以一个方向(d)在位置(x,y)上以速度(v)移动的行星。还有一个物体(即星星)在这个星球上有一个引力。该物体具有质量(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);
}

1 个答案:

答案 0 :(得分:1)

您可能正在寻找Newton's Law of Universal Gravitation

  

Gm 1 m 2 / r 2 = F

一旦找到 F ,您就可以在标准运动方程中使用它:

  

F y t 2 / 2 + v y t + y 0 = y < / em>的
   F x t 2 / 2 + v x t + x 0 = x