# Statistics

Viewed 720 times
Favorited by 0 user(s)

# AS3 MathUtils static class

/ Published in: ActionScript 3
`package com.brunoimbrizi.utils { 	/**	 * Class		MathUtils	 * 	 * @author 		Bruno Imbrizi	 */ 	public class MathUtils {  		/**		 * Returns a number constrained between min and max.		 * @param	num		 * @param	min		 * @param	max		 * @return		 */		public static function constrain(num:Number, min:Number = 0, max:Number = 1):Number		{			if (num < min) return min;			if (num > max) return max;			return num;		}  		/**		 * Returns a random number between min and max.		 * 		 * @param	min		 * @param	max		 * @return		 */		public static function randomRange(min:Number, max:Number, round:Boolean = false):Number 		{			var num:Number = (min + Math.random() * (max - min)); 			if (round) return Math.round(num);			return num;		}  		/**		 * Returns the percentage of a number in a given range.		 * Example: num = 15 range 10 to 20 // outputs 0.5		 * 		 * @param	num		 * @param	min		 * @param	max		 * @param	constrainMin		Returns 0 if num < min.		 * @param	constrainMax		Returns 1 if num > max.		 * @return		 */		public static function rangeToPercent(num:Number, min:Number, max:Number, constrainMin:Boolean = false, constrainMax:Boolean = false):Number 		{			if (constrainMin && num < min) return 0;			if (constrainMax && num > max) return 1;			return (num - min) / (max - min);		}  		/**		 * Returns the number that corresponds to the percentage in a given range.		 * Example: percent = 0.5 range 10 to 20 // outputs 15		 * 		 * @param	percent		 * @param	min		 * @param	max		 * @return		 */		public static function percentToRange(percent:Number, min:Number, max:Number):Number 		{			return (percent * (max - min)) + min;		}  		/**		 * Re-maps a number from one range to another. The output is the same as inputing the result of rangeToPercent() into percentToRange().		 * Example: num = 10, min1 = 0, max1 = 100, min2 = 0, max2 = 50 // outputs 5		 * @param	num		 * @param	min1		 * @param	max1		 * @param	min2		 * @param	max2		 * @return		 */		public static function map(num:Number, min1:Number, max1:Number, min2:Number, max2:Number, round:Boolean = true, constrainMin:Boolean = true, constrainMax:Boolean = true):Number		{			if (constrainMin && num < min1) return min2;			if (constrainMax && num > max1) return max2; 			var num1:Number = (num - min1) / (max1 - min1);			var num2:Number = (num1 * (max2 - min2)) + min2;			if (round) return Math.round(num2);			return num2;		}  		/**		 * Converts radians to degrees.		 * 		 * @param	radians		 * @return		 */		public static function radiansToDegrees(radians:Number):Number 		{			return (radians * 180 / Math.PI);		}  		/**		 * Converts degrees to radians.		 * 		 * @param	degrees		 * @return		 */ 		public static function degreesToRadians(degrees:Number):Number 		{			return (degrees * Math.PI / 180);		}  		/**		* Returns 1 if the value is >= 0. Returns -1 if the value is < 0.		* 		* @param	num		* @return		*/     		public static function sign(num:Number):int {			if (num < 0) return -1			return 1;		}	}  }`