Thanks very much, Brad.
Cheers,
Alan.
On 6/14/05, Bradley R. Gabe <brad(at)cg-soup.com> wrote:
> It's an interesting exercise. I'm not a mathematician by any stretch, but
> here's a little jscript that'll distribute points in a unit sphere by
> randomly calculating a quaternion rotation, then transforming 1 unit from
> origin. I use a particle cloud to visualize the point distribution.
>
> // SPHERICAL POINT DIST
> var radius = 0.5;
> var pnts = 1000;
>
> // Create New particle Type
> var pTypeColl = CreateParticleType();
> pType = pTypeColl(0);
>
> // Create Cloud
> var cloud = ActiveSceneRoot.AddParticleCloud();
> var cloudPrim = cloud.ActivePrimitive;
> cloudPrim.AddParticles(pnts, pType);
> particles = cloudPrim.Particles;
>
>
> // For each particle, set a random distribution
> for(var i=0; i<pnts; i++){
>
> // Get XSIMath objects for calculating random rot
> var rot = XSIMath.CreateRotation();
> var q1 = XSIMath.CreateQuaternion();
> var trans = XSIMath.CreateTransform();
> var pos = XSIMath.CreateVector3();
> var radPos = XSIMath.CreateVector3();
> radPos.Set(radius, 0,0);
>
> // Calculate random quaternions
> var W = Math.random() * 2 - 1;
> var X = Math.random() * 2 - 1;
> var Y = Math.random() * 2 - 1;
> var Z = Math.random() * 2 - 1;
> q1.set(W,X,Y,Z);
>
> // Create a unit transform from quaternion rotation
> rot.SetFromQuaternion(q1);
> trans.SetRotation(rot);
> trans.AddLocalTranslation(radPos);
> trans.GetTranslation(pos);
>
> // Set particle to unit transform;
> particles(i).position = pos;
>
> }
>
>
>
>
> Hi All,
>
> This is to the maths geniuses in the room. I want to generate X number
> of points on a unit sphere, but be sure I won't have any biasing
> involved.
>
> My first thought was just to use a couple of random numbers (let's
> assume they don't have any bias) and then use those with a few sin and
> cos function etc to generate the points. Though I have a feeling that
> would give me more points around the poles.
>
> Anyone have some good suggestions?
>
> Cheers,
>
> Alan.
>
> ---
> Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
> unsubscribe xsi
---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi