From e1afa5a46fc00e26639e97de007f2b84aedb9f7c Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Fri, 1 Jun 2012 01:30:36 +0200 Subject: Put angle-related utilities into their own package Also, use float instead of double for every angle computation. --- main/src/cgeo/geocaching/utils/AngleUtils.java | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 main/src/cgeo/geocaching/utils/AngleUtils.java (limited to 'main/src/cgeo/geocaching/utils/AngleUtils.java') diff --git a/main/src/cgeo/geocaching/utils/AngleUtils.java b/main/src/cgeo/geocaching/utils/AngleUtils.java new file mode 100644 index 0000000..e2b4a66 --- /dev/null +++ b/main/src/cgeo/geocaching/utils/AngleUtils.java @@ -0,0 +1,28 @@ +package cgeo.geocaching.utils; + +public class AngleUtils { + + private AngleUtils() { + // Do not instantiate + } + + /** + * Return the angle to turn of to go from an angle to the other + * + * @param from the origin angle in degrees + * @param to the target angle in degreees + * @return a value in degrees, in the [-180, 180[ range + */ + public static float difference(final float from, final float to) { + return normalize(to - from + 180) - 180; + } + + /** + * Normalize an angle so that it belongs to the [0, 360[ range. + * @param angle the angle in degrees + * @return the same angle in the [0, 360[ range + */ + public static float normalize(final float angle) { + return (angle >= 0 ? angle : (360 - ((-angle) % 360))) % 360; + } +} -- cgit v1.1