向量角度
计算两个向量之间的角度(θ)。
- 使用
Array.prototype.reduce()
、Math.pow()
和Math.sqrt()
来计算每个向量的大小和两个向量的数量积。 - 使用
Math.acos()
来计算反余弦并获取θ值。
const vectorAngle = (x, y) => {
let mX = Math.sqrt(x.reduce((acc, n) => acc + Math.pow(n, 2), 0));
let mY = Math.sqrt(y.reduce((acc, n) => acc + Math.pow(n, 2), 0));
return Math.acos(x.reduce((acc, n, i) => acc + n * y[i], 0) / (mX * mY));
};
vectorAngle([3, 4], [4, 3]); // 0.283794109208328