3D粒子球

时间:2012-09-21 22:09:58

标签: actionscript-3 actionscript-2

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

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

提前致谢...

1 个答案:

答案 0 :(得分: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);
}