three角度处理:1.角度、弧度归一(0,2PI),2.两个角度之间的最小夹角
角度通常用 弧度(radian)表示,所以你要做的就是把任意弧度值「归一化」到 [0, 2π) 之间。
弧度归一
normalizeAngle(angle) {
const twoPI = Math.PI * 2;
return ((angle % twoPI) + twoPI) % twoPI;
}
角度归一
normalizeAngle(deg) {
return ((deg % 360) + 360) % 360;
}
两个角度之间的最小夹角(差值),而不是单纯的相减
-
返回值在 [-180, 180] 之间,带正负号(正负表示方向)。
-
如果只关心差的大小,可以用
Math.abs()。
angleDiff(a, b) {
let diff = ((b - a + 180) % 360) - 180;
return diff < -180 ? diff + 360 : diff;
}

浙公网安备 33010602011771号