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使用浮点数,所以模算术不是一个明显的选项。 –