diff options
Diffstat (limited to 'main/src/cgeo/geocaching/utils/AngleUtils.java')
| -rw-r--r-- | main/src/cgeo/geocaching/utils/AngleUtils.java | 28 |
1 files changed, 28 insertions, 0 deletions
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; + } +} |
