如果船只的旋转速度可以降低/增加的最大值,那么如果她在仍朝另一个目标移动的同时改变目标,则无法防止玩家设置的目标超调。然而,您可以通过可以确保您以最快的速度达到零速(即无超调)的目标速度。见http://en.wikipedia.org/wiki/Optimal_control为解决优化控制问题的一般方法。最佳控制通常包括始终在全推力时加速/减速(直至达到目标)。
为了解决这个问题,用C表示新命令的当前角度,用T表示目标角度。接收新目标时的角速度用V'表示,最大加速度用M表示。正V对应顺时针旋转,反时针V逆时针旋转。
说出您的初始角速度大于0(V'> 0),那么有两种可能性地达到t更大:
1)增加V代表一段U,然后减小它,直到它是零。那么你的最终角度会(绘制速度与时间的照片,并确定它的面积核实):
C+ V'^2/(2 M) + 2U*V' + M U^2
哪些应该等同于与T找到U(ABC公式),除非它没有给出解决方案(否定判别),其中选项2)应提供解决方案。 2)减少V一段时间,最终改变V的符号,然后将V增加到0。画图给出:
C+ V^2/(2 M) - M U^2.
等同于T得到U.
你会发现他们的是一个非常简单的条件,其确定选项1),或者是否2)给出了解决方案。
初速度V'< 0类似(1和2,也许有些符号翻转)的情况。再次画一张照片,以免你感到困惑。
有一些微妙的东西在这里,因为如果你想在T“则T” + K 360度(/ 2 PI弧度)也将做(只要你能充分去全天候) 。所以你实际上可以选择选择的别名的T最容易去。
您是否在谈论关于任意轴的3D平面内旋转或旋转?你是什么意思“顺利旋转进出”?你的意思是开始和停止轮换顺利吗? – andand
这是一款2D游戏。我的意思是,这艘船可以每秒旋转10度,但它不会以每秒10度的速度开始,但会慢慢加速。 (减速,所以它会立即停止) – YAS