.net - 平均角度

标签 .net

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

我需要对角度数组进行平均(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/

相关文章:

javascript - 如何处理 asp.net Httphandler 中的错误?

.net - 如何在调试期间找到实现给定接口(interface)的所有类型实例

.net - .net 3.5 的 microsoft.visualbasic.dll 在哪里?

asp.net - 尝试使用 VS 2012 打开我的 asp.net 4.5 MVC Web 应用程序时出错。Asp.net 尚未在服务器上注册

c# - 保护软件免遭盗版

.net - 如何在 PowerShell 中使用 DTE?

.net - 为什么连接池在不同服务器上的行为不同?

c# - 如何使用 Linq 实现 NextRcord 和 PreviousRecord 按钮?

.net - 我可以在 ASP.NET MVC 中的哪里放置自定义类?

c# - 缩放和选择不适用于具有时间类型的 x 轴的 C# 图表