class M2 extends Math { public function M2() {super();} public static function toRadians(d:Number):Number { return d*PI/180;} public static function toDegrees(r:Number):Number { return r*180/PI;} public static function projection(a:Number, m:Number):Object { return {x:m*cos(toRadians(a)), y:m*sin(toRadians(a))}; } public static function circumference(r:Number):Number { return 2*PI*r;} public static function circArea(r:Number):Number { return PI*sq(r);} public static function sq(n:Number):Number { return n*n;} public static function cube(n:Number):Number { return n*n*n;} public static function limit(l:Number, h:Number, c:Number):Number { return min(max(l,c),h);} public static function easeOut(b:Number, e:Number, coeff:Number):Number { return b+(e-b)*coeff;} public static function easeInOut(t:Number, b:Number, c:Number, d:Number):Number { if(t == 0) return b; if(t == d) return b+c; if((t /= d/2)<1) return c/2*pow(2,10*(t-1))+b; return c/2*(-pow(2,-10*--t)+2)+b; } public static function pythag(x:Number, y:Number):Number { return sqrt(sq(x)+sq(y));} public static function dist(x1:Number, y1:Number, x2:Number, y2:Number):Number { var dx:Number=x2-x1; var dy:Number=y2-y1; return pythag(dx, dy); } public static function golden(p:Number):Number { return p*.6180339887498948482045868343656;} }