X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fmodels%2Fgeom%2FMiscGeom.java;fp=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fmodels%2Fgeom%2FMiscGeom.java;h=ce3bc7d46b079488e698689575cb6c713bcb612b;hb=2d6292c0377bc6b773c6844a45d3f2c5fac352c7;hp=0000000000000000000000000000000000000000;hpb=954af328a2a6a0055572cd1a09ee035301222574;p=jalview.git diff --git a/srcjar/fr/orsay/lri/varna/models/geom/MiscGeom.java b/srcjar/fr/orsay/lri/varna/models/geom/MiscGeom.java new file mode 100644 index 0000000..ce3bc7d --- /dev/null +++ b/srcjar/fr/orsay/lri/varna/models/geom/MiscGeom.java @@ -0,0 +1,34 @@ +/** + * File written by Raphael Champeimont + * UMR 7238 Genomique des Microorganismes + */ +package fr.orsay.lri.varna.models.geom; + +import java.awt.geom.Point2D; + + +/** + * @author Raphael Champeimont + * Misc geometry functions. + */ +public class MiscGeom { + + /** + * Compute the angle made by a vector. + */ + public static double angleFromVector(Point2D.Double v) { + return MiscGeom.angleFromVector(v.x, v.y); + } + + public static double angleFromVector(double x, double y) { + double l = Math.hypot(x, y); + if (y > 0) { + return Math.acos(x / l); + } else if (y < 0) { + return - Math.acos(x / l); + } else { + return x > 0 ? 0 : Math.PI; + } + } + +}