【发布时间】: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