User:Pedro Oval/Uniform random rotation

From Second Life Wiki
< User:Pedro Oval
Revision as of 21:35, 23 January 2015 by Pedro Oval (talk | contribs) (<lsl> to <source>)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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)>;
}