21 lines
545 B
JavaScript
21 lines
545 B
JavaScript
module.exports = random;
|
|
|
|
/**
|
|
* Generates a random vector with the given scale
|
|
*
|
|
* @param {vec3} out the receiving vector
|
|
* @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned
|
|
* @returns {vec3} out
|
|
*/
|
|
function random(out, scale) {
|
|
scale = scale || 1.0
|
|
|
|
var r = Math.random() * 2.0 * Math.PI
|
|
var z = (Math.random() * 2.0) - 1.0
|
|
var zScale = Math.sqrt(1.0-z*z) * scale
|
|
|
|
out[0] = Math.cos(r) * zScale
|
|
out[1] = Math.sin(r) * zScale
|
|
out[2] = z * scale
|
|
return out
|
|
} |