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

球面座標はあなたが望むものです。

2つの角度が必要です:

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 に答える