顺利转向方向

时间:2013-12-18 23:42:11

标签: math rotation angle smooth

我正在尝试采用角度A并以B的速度平滑地朝着角度S旋转角度,其中速度随着角度A之间的距离而减小。 B。角度A也通过最短路径转向角度B

我给出了一个脚本作为模型:

Function: rotate_to_destination( A , B , S );
    return ( A + ( sin( ( B - A ) * ( pi / 180 ) ) * S ) );

我一直在使用它,除了一个问题外它效果很好:当AB之间的距离时,A转向B所需的时间会延长{1}}正好是180。

我对数学并不多,所以我无法解决问题或巧妙地想出自己的问题。我也没有找到另一种解决方案。

1 个答案:

答案 0 :(得分:1)

你需要知道A和B之间的最大和最小差异。假设 -180< =(A-B)< = +180,您可以将公式更改为( A + ( sin( ( B - A ) * ( pi / 360 ) ) * S ) );

基本上,你需要确保术语(B - A)*(pi / X)永远不会变为零,pi,-pi,2 * pi,-2 * pi等,而是-pi / 2或pi / 2.