package com.bit101.utils { public class NumberUtils { public static function normalize(value:Number, minimum:Number, maximum:Number):Number { return (value - minimum) / (maximum - minimum); } public static function interpolate(normValue:Number, minimum:Number, maximum:Number):Number { return minimum + (maximum - minimum) * normValue; } public static function map(value:Number, min1:Number, max1:Number, min2:Number, max2:Number):Number { return interpolate( normalize(value, min1, max1), min2, max2); } } }
在算一些相对比例的时候(比如做滚动条),这三个方法很常用。虽然是很简单的数学知识,但是还是记录下来免得突然有时脑筋打结。
normalize() // 计算比例,正常范围是在0~1之间
interpolate() // 根据比例、最大最小值算出对应值
map() // 根据四个极值算出对应值


