你如何模拟不同质量的行星对船的影响?
我正在写一个类似于小行星的Flash游戏,它有一艘小型船在一个行星场上航行.行星不会相互施加力,而只会在船上发力.
像这样的Java模拟,但有更大的行星:
对于质量为m的行星,在距离船舶的距离r处,船舶将经历加速度:
a = k m/r ^ 2,
其中k是某个常数,取决于您使用的单位.加速度将指向行星.沿x轴和y轴分解加速度可能很方便(假设你在2维工作).如果行星相对于船在xy平面中处于角度θ,
a x = a cos(theta)
a y = a sin(theta)
对于多个行星,您可以按组件方式添加加速度.
如果船舶在时间t处具有初始速度v x,则下一时刻步骤t + delta_t处的速度将为:
v x + a x*delta_t
如果该船在时间t 处于初始位置p x,则t + delta_t处的位置将为:
p x + v x delta_t + a x delta_t ^ 2/2
请参阅: 运动方程
归档时间: |
|
查看次数: |
932 次 |
最近记录: |