作者 kyzusmugoe (阿達達~鬼王達) 看板 Flash
標題 [問題] 想請教"亂數球體面積座標"的公式
時間 Wed Sep 15 21:58:44 2010
借用cj神的zedbox做demo一下~
swf : http://tinyurl.com/277plu2
其實wiki搜尋"球座標系"裡面就有答案 http://tinyurl.com/24796s6
以下是改過的code~
var rd:uint = 500;
var inclination:Number;
var azimuth:Number
for (var i:uint; i < 200; i++ )
{
var zs:ZedSprite = new ZedSprite();
inclination = Math.random() * Math.PI * 2;
azimuth = Math.random() * Math.PI * 2;
zs.x = rd * Math.cos(inclination) * Math.cos(azimuth);
zs.y = rd * Math.sin(inclination) * Math.cos(azimuth);
zs.z = rd * Math.sin(azimuth) ;
container.addChild(zs);
}
======================================
作者 cjcat2266 (CJ Cat) 看板 Flash
標題 Re: [問題] 想請教"亂數球體面積座標"的公式
時間 Fri Sep 17 22:53:08 2010
其實有另外一招超簡單的偷吃步喔
就是直接用random做出一個亂數(x, y, z)座標向量
然後把這個向量標準化(normalize)之後調整長度為RADIUS
var x:Number = Math.random() - 0.5;
var y:Number = Math.random() - 0.5;
var z:Number = Math.random() - 0.5;
var factor:Number = RADIUS / Math.sqrt(x * x + y * y + z * z);
x *= factor;
y *= factor;
z *= factor;
以上code參考自Flint Particles的SphereZone class
Stardust也是用這種方式取得亂數球體座標
雖然不是說很"均勻",但是我個人覺得夠用了
重點是計算很簡單,不太需要什麼大腦XD
沒有留言:
張貼留言