首页 文章

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

提问于
浏览
1

我正在尝试用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 回答

  • 1

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

    Gm1m2 / r2 = F.

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

    Fyt2 / 2 vyt y0 = y Fxt2 / 2 vxt x0 = x

相关问题