离散均匀圆形分布

时间:2016-05-06 02:38:16

标签: algorithm trigonometry

  1. 在区间[0:360]
  2. 中分配N个角度值
  3. 将这些N值映射到单位圆周上。
  4. 自动确定所有其他值之间的两个值。
  5. 是否有一般解决方案?

    enter image description here

1 个答案:

答案 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之间。