Utku Demir
Utku Demir

Reputation: 37

3D Particles Ball

If I'd like to make a circle with particles, I'd define random coordinates for particles like this:

for(var i:int = 0; i != 100; i++)
{
var angle:Number    = Math.random() * 360;
var r:Number        = 600;
var nX:Number       = r * Math.cos(angle / 180 * Math.PI);
var nY:Number       = r * Math.sin(angle / 180 * Math.PI);
}

But I want to make a ball with particles on 3d space but I don't know how to define random coordinates for particles. Radius is fixed again but there should be a "nZ" value. Can you help me to define these coordinates?

for(var i:int = 0; i != 100; i++)
{
var angle:Number    = Math.random() * 360;
var r:Number        = 600;
var nX:Number       = ???
var nY:Number       = ???
var nZ:Number       = ???
}

Thanks in advance...

Upvotes: 1

Views: 256

Answers (1)

John
John

Reputation: 16007

Spherical coordinates are what you want.

You need two angles:

for(var i:int = 0; i != 100; i++)
{
    var azimuthAngle:Number    = Math.random() * 360;
    var elevationAngle:Number  = (Math.random() * 180) - 90;
    var r:Number = 600;
    var nX:Number =
         r * Math.cos(azimuthAngle / 180 * Math.PI) * Math.sin(elevationAngle / 180 * Math.PI);
    var nY:Number =
         r * Math.sin(azimuthAngle / 180 * Math.PI) * Math.sin(elevationAngle / 180 * Math.PI);
    var nZ:Number =
         r * Math.cos(elevationAngle / 180 * Math.PI);
}

Upvotes: 1

Related Questions