Actionscript 3 三维粒子球
如果我想用粒子做一个圆,我会为粒子定义如下的随机坐标:Actionscript 3 三维粒子球,actionscript-3,actionscript-2,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)
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 = ???
}
提前感谢…球坐标是您想要的 你需要两个角度:
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);
}
球坐标是你想要的 你需要两个角度:
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);
}
不客气。我想你刚才建议编辑第二行,对吗?(无论如何,有人这样做了。)海拔范围从+90度到-90度,而不是0到360度。想想北极和南极以及它们的纬度。我之所以编辑是因为只有“北极”以这个角度出现。我两个都需要:)我觉得行吗?如果Math.random()*180为零,则升降角度为-90。如果是180,那么是+90,对吗?Math.random()输出一个介于0和1之间的数字,对吗?John,你的数学是正确的。random()返回一个伪随机数n,其中0表示感谢。我承认我对动作脚本一窍不通;我作弊并使用了示例中的语法。:)不客气。我想你刚才建议编辑第二行,对吗?(无论如何,有人这样做了。)海拔范围从+90度到-90度,而不是0到360度。想想北极和南极以及它们的纬度。我之所以编辑是因为只有“北极”以这个角度出现。我两个都需要:)我觉得行吗?如果Math.random()*180为零,则升降角度为-90。如果是180,那么是+90,对吗?Math.random()输出一个介于0和1之间的数字,对吗?John,你的数学是正确的。random()返回一个伪随机数n,其中0表示感谢。我承认我对动作脚本一窍不通;我作弊并使用了示例中的语法。:)