User:Pedro Oval/Uniform random rotation

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Based on a "graphics gem" by Ken Shoemake [1]

rotation UniformRandRot()
{
    // Method from Graphic Gems 3, "Uniform Random Rotations"
    // by Ken Shoemake, p.130
    float r2 = llFrand(1.0);
    float a1 = llFrand(TWO_PI);
    float a2 = llFrand(TWO_PI);
    float r1 = llSqrt(1.0 - r2);
    r2 = llSqrt(r2);
    return <r1*llSin(a1), r1*llCos(a1), r2*llSin(a2), r2*llCos(a2)>;
}