相对于对象添加速度

时间:2016-01-19 14:08:57

标签: javascript math game-physics

我正在尝试用js制作火车,但我想加速火车的速度。 但是火车相对于画布有另一个轴,所以如何相对于画布添加速度 http://snapsoft.eu/example.png

1 个答案:

答案 0 :(得分:1)

如果列车系统相对于静止系统旋转了角度Theta,那么您可以将速度矢量Vr(旋转中)转换为Vs(静止):

Vs.X = Vr.X * Cos(Theta) -  Vr.Y * Sin(Theta)
Vs.Y = Vr.X * Sin(Theta) +  Vr.Y * Cos(Theta)

如果旋转系统以速度W移动,则添加W

Vs.X = W.X + Vr.X * Cos(Theta) -  Vr.Y * Sin(Theta)
Vs.Y = W.Y + Vr.X * Sin(Theta) +  Vr.Y * Cos(Theta)

在你的例子中

Theta = -Pi/4
Vs.X = 0.5 * 0.707 +  0 * 0.707 = 0.3535
Vs.Y =  - 0.5 * 0.707 +  0 * 0.707 = -0.3535