| Ultrashock Forums
• AS3 - gaussian / weighted random distribution |
|||
![]() |
||||
| Search this Thread | Thread Tools | Display Modes |
|
|
|||||||||||||||||||||||||
![]() |
Ultrashock Member Comments:
|
2009-05-29
#2 |
||
|
|
2009-05-29
#3 |
||
|
thanks! I'll give it a shot. here's what I ended up with: Code:
function triRand(a : Number, b : Number, u : Number):Number
{
var result : Number;
var c : Number = b - ((b-a)/2);
if (u <= 1){
result = a + Math.sqrt(u * (b-a) * (c-a));
}else{
result = b - Math.sqrt((u-1) * (b-a) * (b-c));
}
return result;
}
var a: Number = 0;
var b: Number = _mc.stage.stageHeight;
var RAN : Number = (Math.random()* 2);
var result : Number = Distribute.triRand(a, b, RAN);
|
|
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|


2 comments
| 277 views



Linear Mode
function weightMiddle(input:Number, strength:int = 2):Number { if (input < 0.5) return 1 - Math.pow(1 - input, strength) / 2; return 0.5 + Math.pow((input - 0.5) * 2, strength) / 2; }Use the "strength" parameter to force it closer to middle distribution. Default value is 2, which still preserves some randomness.
You would use this function like this: