【问题标题】:Simulation of planets orbiting模拟行星运行
【发布时间】:2017-07-31 12:01:05
【问题描述】:

我正在借助牛顿定律 (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 的速度,以便完美地绕另一个行星 2 做圆周运动。
  • 我觉得你的问题有点离题,也许 StackExchange 物理或数学会更合适。
  • 我需要在那里创建一个全新的还是可以移动它?

标签: javascript simulation behavior


【解决方案1】:

您可以使用公式计算速度

v = sqrt(Gm/r)

其中 G 是万有引力常数,m 是您绕其运行的物体的质量,r 是轨道半径(从物体中心算起)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    相关资源
    最近更新 更多