我在游戏中有一个单位,指向特定的方向;当它转向另一个方向时,应该选择最短的转弯。该方案以特定角度开始,并且需要一个给定的角度来指向lerp(线性插值)。游戏中的单位轮换
例如,从10度倾斜到350度应计算-10的目标角度。相反,从350到10的顶峰应计算370度的末端。
什么算法可以计算这些所需的最终值?
编辑::好像有过什么,我需要
我使用线性插值随着时间的推移,计算角度有些混乱。所以,如果我想从10到20,那么最终值需要是20,然后我将从10到20插入并右转。但是,同样如果我想从20到10,那么从20到10的插值将逆时针旋转,这也可以。问题是什么时候顺时针方向转180度以上,270度到80度(210度)需要顺时针转动,直接插补270到80会逆时针转动,我需要从270到420插补(360度+80),它将逆时针旋转。
如你所说,假设你试图总是采取最短的转向,我对你的例子感到困惑。如果你有一个10度的航向并想转向350度,那就是-20度的旋转。如果你有350度的航向,并且想要转向10,那也是+20度的旋转。我错过了什么吗? – 2010-02-12 13:39:01
是的,我需要计算_end value_而不是delta。从10→350的线性插值将顺时针旋转,从10→-10的线性插值将逆时针旋转 – Martin 2010-02-12 13:48:25
您想要恒定速度吗?固定时间去那里?如果你有三角洲,使用(的一小部分)来增加你的角度,不要尝试插值。 – phkahler 2010-02-12 14:30:53