2D世界速度到2D局部速度

时间:2013-12-16 16:38:12

标签: c++ math vector matrix rotation

当给定北和东速度时,如何计算X,Z坐标中物体的局部速度?

对于实例我有一个物体移动10mph北部和5mph东部,标题为60度。

如何确定物体的前进速度和物体的横向漂移?

这是用简化的系统编写的,没有matricies和quaterion库,因此希望只使用trig来解决 不幸的是,自从我这么做了几年后,如何做到这一点就生气了......

1 个答案:

答案 0 :(得分:6)

好的,如果你要去Vn north和Ve East,你的速度矢量是

V = (Ve, Vn)

以及如果您将航向测量为轴承的行驶方向,b,从北向顺时针方向

F = (sin(H), cos(H))
从这里我们也可以构造指向右边的向量

R = (cos(H), -sin(H))

其中H是转换为弧度的标题

H = b*PI/180.0

然后你面向的方向的速度是speedForward = F.V(点积),即

speedForward = sin(H)*Ve + cos(H)*Vn

同样,你右边的速度漂移是R.V

speedRight = cos(H)*Ve -sin(H)*Vn

很明显,前进速度是speedForward * F,类似于你正确的方向。

所以在你的例子中,V =(5,10)和F =(sqrt(3)/ 2,0.5)

你的前进速度是9.33英里每小时,你的右手漂移速度是-6.16英里每小时(即你以6.16英里/小时的速度向左漂移)。幸运的是,在这些坐标中测量的速度与原始速度相同,所以看起来我们还可以。从图片上看,横向漂移的标志对我来说也是合理的。