行星轨道的模拟

时间:2017-07-31 12:01:06

标签: javascript simulation behavior

我正在牛顿定律(here)的帮助下创建行星模拟,一切正常,但我找不到任何来源如何计算行星的完美起始速度以绕另一个轨道运行根据两个行星的已知参数给出的行星:质量,距离和G

以下代码计算加速度:

calcBodyAcceleration(body1, body2) {

    var G = Settings.get("G");
    var mults = Settings.get("multipliers");

    var pos1 = Vec2.add(body1.position, body1.center);
    var pos2 = Vec2.add(body2.position, body2.center);

    var subtraction = Vec2.subtract(pos1, pos2);
    var dist2 = subtraction.magnitudeSq();
    var dist = Math.sqrt(dist2);

    var mass1 = body1.mass * mults.mass;
    var mass2 = body2.mass * mults.mass;

    var mass = mass1 * mass2;
    var force = G * (mass / dist2);

    subtraction.divide(dist).multiply(force).divide(mass1);

    body1.acceleration.subtract(subtraction);

}

1 个答案:

答案 0 :(得分:0)

您可以使用公式计算速度

v = sqrt(Gm / r)

其中,G是重力常数,m是绕轨道运动的物体的质量,r是轨道半径(从物体的中心开始)。