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

Gre*_*egM 2 c++ math vector rotation matrix

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

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

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

这是用一个简化的系统编写的,它没有matricies和quaterion库,因此希望只使用trig来解决这个问题很遗憾,自从我这么做了几年后,如何实现这一目标有点生疏......

use*_*915 6

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

V = (Ve, Vn)
Run Code Online (Sandbox Code Playgroud)

如果你测量你的航向为轴承,则行驶方向为b,顺时针方向为北方

F = (sin(H), cos(H))
Run Code Online (Sandbox Code Playgroud)

从这里我们也可以构造指向右边的向量

R = (cos(H), -sin(H))
Run Code Online (Sandbox Code Playgroud)

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

H = b*PI/180.0
Run Code Online (Sandbox Code Playgroud)

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

speedForward = sin(H)*Ve + cos(H)*Vn
Run Code Online (Sandbox Code Playgroud)

同样,你右边的速度漂移是RV

speedRight = cos(H)*Ve -sin(H)*Vn
Run Code Online (Sandbox Code Playgroud)

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

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

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