2020-06-01
描述
返回两个向量之间的角度(θ)。
提示
- 使用
Array.prototype.reduce()
,Math.pow()
和Math.sqrt()
分别计算每一个向量的模 - 使用
Array.prototype.reduce()
计算两个向量的内积 - 使用
Math.acos()
和公式 \vec{a} \cdot \vec{b} = |\vec{a}| \, |\vec{b}| \cos \theta \; 计算角度 θ
代码
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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于