坦克运动基于赛道速度

我想要一个系统,一个坦克根据我给他的两个轨道的速度移动和旋转,例如,如果我给左边的轨道速度为1,右边的速度为-1,那么我想要坦克保持静止和向右旋转,而如果我给左边的轨道1和正确的轨道-0.5,我希望它旋转,但同时向前 在这里输入图像描述

当然速度将在-1和1之间

免责声明:这只基于直觉,而且在math上确切地说有一个缺失的部分。 但是,据我所知,小位移值应该是一个足够好的近似值。

这个想法是,每个胎面的中心描述一个完美的运动,而不打滑。 我们来画一个图表:

O是你的坦克的起源, LR是踏板的中心。 那么你会执行如下:

  • LR是通过对方向向量d进行左右正交旋转find的,并将它们加到原点上;
  • L'R'是通过将两个横向速度应用于LR WRT而得到的方向vector。
    L'= L +速度(L)×dR'= R +速度(R)×d ;
  • O'[L'R']的中间,即(L'+ R')/ 2 ;
  • 新的方向vector与[L'R']正交。

这个近似值来自于L'R'> LR的事实,也就是说,坦克在转弯的时候实际上会略微延伸。 修复这将需要更高级的工具(某种曲线向量?我不知道:p)。 但是,只要每个帧的速度保持相对较小,就应该足够好。

为每个车轮设置一个vector,然后计算油箱应该面对的交叉乘积(crossWheel,rightWheel);