朝向在一圈结束后回到起点,因此接近三百六十度与接近零度的两个方向其实很近。直接平均角度数字,会把这样的方向错误地拉到另一侧。

先把规则写清楚

每个角度先转成单位向量,再乘以权重。把横纵分量分别相加,用两分量的反正切求平均方向,最后规范到零度至三百六十度之间。合向量长度除以总权重记为集中程度;合向量长度小于十的负十次方时,本例判为方向未定义。

本例输入与推演结果

角度单位为度,各权重均为正。下面同时列出错误地直接平均角度数字得到的结果,供对照区别。

角度 | 权重 | 加权横分量 | 加权纵分量 350 | 3 | 2.954423 | -0.520945 10 | 5 | 4.924039 | 0.868241 318 | 6 | 4.458869 | -4.014784 231 | 4 | -2.517282 | -3.108584 250 | 4 | -1.368081 | -3.758770 189 | 3 | -2.963065 | -0.469303 19 | 1 | 0.945519 | 0.325568 355 | 3 | 2.988584 | -0.261467 合向量=(9.423006,-10.940044);向量平均方向=310.7393624480658;集中程度=0.497888。 直接数字平均=227.000000度,只作为不合适方法的对照。

这里的编号只用来辨认本例中的对象,不能当成另一份记录里的固定身份。阅读表格时先找到输入,再顺着运算顺序对照输出;空列表、零值和不存在的结果有不同含义,不能混用。表中分数保留精确值,小数显示仅为阅读方便。

怎样自己复核

相同方向的向量不会彼此抵消,完全相反且权重相同的方向会抵消。方向未定义时应明确输出空结果,不要依赖反正切对两个零的返回值,把它误当成朝向零度。

试着整体旋转所有输入角度,平均方向应跟着旋转,集中程度不变。再只提高一个输入的权重,观察合向量向它偏移。表格保留六位小数供阅读;接近抵消时方向非常敏感,应用中应根据明确阈值处理而不是显示抖动的箭头。

适用范围

这是圆周上的向量平均,不是寻找最小绝对角距离的中位方向。集中程度反映向量抵消程度,不应当成某个玩家判断正确的概率,也不适用于直接平均三维旋转姿态。

本例是一套可复现的游戏机制练习,不依赖具体品牌或某个软件的默认设置。修改任何边界约定、输入参数或操作顺序后,应重新推演并保存中间状态。发现差异时先定位第一处不一致,再判断是规则不同还是计算错误,不要只把最终答案调整到看起来相同。