答案 0 :(得分:0)
一种方法是计算平均角度,从所有角度减去此值,得到-circle / 2和circle / 2之间的结果(例如,如果使用弧度,则圆圈为2pi)并取范围为(平均角度+这些的最小值,平均角度+最大值)。
这可能至少有两种方式失败:你可能无法找到一个平均角度(北,东,南,西的平均值是什么?),最小值和最大值分别是-circle / 2和circle / 2 ,所以你的范围将是整个圈子。
我认为'适当的'计算平均角度的方法是将所有角度转换为单位向量,取平均值并使用atan2求平均向量的方向;这是平均角度。但请注意,在n,e,s,w示例中,平均单位向量为0,0,atan2将返回为nan。
如果您使用C(ish)语言,则数学库函数余数对于标准化角度非常方便;余数(a,圆圈)将在-circle / 2和circle / 2之间。