1
我遇到了一些關於角度的問題。我有一個角度A和另一個角度B,我想動畫A最短的方式,以便它達到B.對我來說,第一個困惑是角度從0到180,從0到-180。不確定這是什麼優點。無論如何,我會給出例如:添加或減去一個角度達到一個角度的最短路徑
float a = -35;
float b = 90;
每次更新我想要麼加1或減一個1度,直到它到達B,我想確保它去最近的路。
這是我的代碼,這似乎是工作。但它看起來效率不高:
b += 360;
if (b > a) {
if (b - a < 180) {
a += 1;
} else {
a -= 1;
}
} else {
if (a - b < 180) {
a -= 1;
} else {
a += 1;
}
}
有沒有更好/更簡單的方法來做到這一點?
爲什麼你不包含這個必須駐留的循環,所以我們有一個完整的工作示例來玩。 –
使用模運算。並且在循環開始之前計算一次方向,而不是每次迭代。 –
@OliCharlesworth OP使用浮點數,所以模算術不是一個明顯的選項。 –