我可能会过度思考这个,但是,你说你有以下变量;
你怎么能找出学位的方向?即,0-> 359是顺时针的,359-> 0是逆时针的。
以下是几个例子:
Starting at: 357 degrees
Ending at: 337 degrees
Incremented by: 20
Direction: Counterclockwise
Starting at: 10 degrees
Ending at: 350 degrees
Incremented by: 20
Direction: Counterclockwise
Starting at: 357 degrees
Ending at: 17 degrees
Incremented by: 20
Direction: Clockwise
你如何尽可能安全地找出方向?一个快速的解决方法是使用模块,但是,如果递增的数字偏离1-2度会发生什么?
理想的解决方案将是一种检测最接近增量数字的方向的方法。如果没有意义,这是一个例子:
Starting at: 17 degrees
Ending at: ~347-357 degrees
Incremented by: ~20-30
Direction: Counterclockwise
它不会是顺时针方向,因为差异大约是330-340。
如果它没有意义,请告诉我,我会尽力改写它。
答案 0 :(得分:0)
为CW和CCW计算两个变体
E1 = (Start + Increment) %% 360
E2 = (Start + 360 - Increment) %% 360
并检查哪种变体与结束角度的绝对差异较小。
S:0; E:20;
if I=20
CW: 0+20=20
CCW: 0 + 360-20=340
E is closer to CW result
if I=340
CW: 0+340=340
CCW: 0 + 360 - 340 = 20
E is closer to CCW result