From ba7dadba97963ae04d882c79c73a291cc959f77c Mon Sep 17 00:00:00 2001 From: Robert Zubeck Date: Thu, 14 Feb 2008 20:52:38 +0000 Subject: [PATCH] Angle utility functions. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@416 ed5b42cb-e716-0410-a449-f6a68f950b19 --- src/as/com/threerings/flash/MathUtil.as | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/as/com/threerings/flash/MathUtil.as b/src/as/com/threerings/flash/MathUtil.as index a57d857b..1fa0f0ce 100644 --- a/src/as/com/threerings/flash/MathUtil.as +++ b/src/as/com/threerings/flash/MathUtil.as @@ -34,6 +34,41 @@ public class MathUtil return Math.min(Math.max(n, min), max); } + /** + * Converts degrees to radians. + */ + public static function toRadians (degrees :Number) :Number + { + return degrees * Math.PI / 180; + } + + /** + * Normalizes an angle in radians to occupy the [0, 2pi) range. + */ + public static function normalizeRadians (radians :Number) :Number + { + var twopi :Number = Math.PI * 2; + var norm :Number = radians % twopi; + return (norm >= 0) ? norm : (norm + twopi); + } + + /** + * Converts radians to degrees. + */ + public static function toDegrees (radians :Number) :Number + { + return radians * 180 / Math.PI; + } + + /** + * Normalizes an angle in degrees to occupy the [0, 360) range. + */ + public static function normalizeDegrees (degrees :Number) :Number + { + var norm :Number = degrees % 360; + return (norm >= 0) ? norm : (norm + 360); + } + /** * Returns distance from point (x1, y1) to (x2, y2) in 2D. *