Translate/convert numeric range in ActionScript
This is one of those equations I always seem to forget, so I’m posting it here for my own selfish benefit (though it’s free for anyone to use).
It’s a range converter method that can be particularly useful for sliders, etc. (code is in ActionScript 3.0).
/**
* Translates a value between two numeric ranges.
* Usage example: trace(translateRange(0, 10, 0, 100, 5)); // returns 50
* @param a1 (Number) minimum value of original range
* @param a2 (Number) maximum value of original range
* @param b1 (Number) minimum value of new range
* @param b2 (Number) maximum value of new range
* @param num (Number) number from original range to translate
* @return Number Value of num in new range
*/
function translateRange(a1: Number, a2: Number, b1: Number, b2: Number, num:Number):Number {
var c:Number = ((num - a1) * (b2 -b1)/(a2 - a1)) + b1;
return c;
}
