vectors
Version:
A grab bag of vector utility functions for 2D and 3D vectors that operate on plain arrays
21 lines (16 loc) • 380 B
JavaScript
module.exports = normalize
function normalize(vec) {
var mag = 0
for (var n = 0; n < vec.length; n++) {
mag += vec[n] * vec[n]
}
mag = Math.sqrt(mag)
// avoid dividing by zero
if (mag === 0) {
return Array.apply(null, new Array(vec.length)).map(Number.prototype.valueOf, 0)
}
for (var n = 0; n < vec.length; n++) {
vec[n] /= mag
}
return vec
}