731 B
731 B
title, tags, expertise, firstSeen, lastUpdated
| title | tags | expertise | firstSeen | lastUpdated |
|---|---|---|---|---|
| Vector angle | math | beginner | 2019-12-16T16:43:13+02:00 | 2021-01-08T00:23:44+02:00 |
Calculates the angle (theta) between two vectors.
- Use
Array.prototype.reduce(),Math.pow()andMath.sqrt()to calculate the magnitude of each vector and the scalar product of the two vectors. - Use
Math.acos()to calculate the arccosine and get the theta value.
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