插值角度

时间:2010-08-13 03:18:01

标签: rotation interpolation angle

我试图通过设置起点和终点以及X帧进行移动来旋转游戏对象。然后插入开始和结束角度以完成它。

它运作良好,但我试图尽可能选择最短的路线(而不是“做最长的路线”)。 在大多数情况下它可以工作,但如果旋转超过360或低于0,我不知道如何检测它并改变数字。 (例如,如果我想从270到90采用最短路径,最短路径超过360/0,因此从未使用过,因此270应该变为-45以进行内插到90)。 我解释起来很糟糕,而且我不是用英语进行整理,所以我将使用我所拥有的伪代码。

 thing.start_angle = 180
 thing.end_angle = 90
 thing.angle = interpolate(thing.start_angle, thing.end_angle, position)

我喜欢这种方式(对于“如果角度> max_angle然后角度-1”的详细时间控制),但我找不到如何检测角度是否会旋转的“规则”... 如何确定旋转是否低于0或高于360,以便采取相应措施?

1 个答案:

答案 0 :(得分:1)

如果

,角度将会换行

thing.end_angle - thing.start_angle> = 180或< -180

(假设角度范围为0到379)。