我在遊戲中有一個單位,指向特定的方向;當它轉向另一個方向時,應該選擇最短的轉彎。該方案以特定角度開始,並且需要一個給定的角度來指向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