我在这里查看了一些解决方案,但没有提供我需要的解决方案,因此:

我需要平均一组角度(0 到 359.9,没有负数)
(A1 + A2 + A3 + An)/n

问题是当你得到一个数组 {1, 359, 2, 358} 时,如果你使用上面的公式,平均值是 180,但实际上它应该是 0。

有什么想法吗?

最佳答案

将每个角度的单位向量相加,并将结果向量转换回角度。如果结果向量的长度为零,则输入相互抵消,结果不确定。

单位向量的长度为 1,其 x 和 y 长度由角度的余弦和正弦给出。因此,您可以按照以下伪代码对示例进行平均:

x = cos(radians(1)) + cos(radians(359)) + cos(radians(2)) + cos(radians(358));
y = sin(radians(1)) + sin(radians(359)) + sin(radians(2)) + sin(radians(358));
angle = degrees(atan2(y, x));

关于.net - 平均角度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5343629/

10-13 08:30