1

如果我想用粒子做一个圆圈,我会为这样的粒子定义随机坐标:

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

但我想在 3d 空间上用粒子制作一个球,但我不知道如何定义粒子的随机坐标。半径再次固定,但应该有一个“nZ”值。你能帮我定义这些坐标吗?

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       = ???
}

提前致谢...

4

1 回答 1

1

球坐标是你想要的。

你需要两个角度:

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);
}
于 2012-09-21T22:18:53.783 回答