com.vividsolutions.jump.geom
Class Angle

java.lang.Object
  extended by com.vividsolutions.jump.geom.Angle

public class Angle
extends java.lang.Object

Utility functions for working with angles.


Field Summary
static int CLOCKWISE
          General constant representing clockwise orientation
static int COUNTERCLOCKWISE
          General constant representing counterclockwise orientation
static int NONE
          General constant representing no orientation
static double PI_OVER_2
           
static double PI_OVER_4
           
static double PI_TIMES_2
           
 
Constructor Summary
Angle()
           
 
Method Summary
static double angle(com.vividsolutions.jts.geom.Coordinate p)
          Returns the angle of the vector from (0,) to p.
static double angle(com.vividsolutions.jts.geom.Coordinate p0, com.vividsolutions.jts.geom.Coordinate p1)
          Returns the angle of the vector from p0 to p1.
static double angleBetween(com.vividsolutions.jts.geom.Coordinate tail, com.vividsolutions.jts.geom.Coordinate tip1, com.vividsolutions.jts.geom.Coordinate tip2)
          Returns the angle between two vectors.
static double diff(double a1, double a2)
          Returns the angle between two vectors.
static int getTurn(double a1, double a2)
          Returns whether an angle must turn clockwise or counterclockwise to overlap another angle.
static double interiorAngle(com.vividsolutions.jts.geom.Coordinate p0, com.vividsolutions.jts.geom.Coordinate p1, com.vividsolutions.jts.geom.Coordinate p2)
          Computes the interior angle between two segments of a ring.
static double normalize(double angle)
          Computes the normalized value of an angle, which is the equivalent angle lying between -Pi and Pi.
static double toDegrees(double radians)
          Converts from radians to degrees.
static double toRadians(double angleDegrees)
          Converts from degrees to radians.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PI_TIMES_2

public static final double PI_TIMES_2
See Also:
Constant Field Values

PI_OVER_2

public static final double PI_OVER_2
See Also:
Constant Field Values

PI_OVER_4

public static final double PI_OVER_4
See Also:
Constant Field Values

COUNTERCLOCKWISE

public static int COUNTERCLOCKWISE
General constant representing counterclockwise orientation


CLOCKWISE

public static int CLOCKWISE
General constant representing clockwise orientation


NONE

public static int NONE
General constant representing no orientation

Constructor Detail

Angle

public Angle()
Method Detail

toDegrees

public static double toDegrees(double radians)
Converts from radians to degrees.

Parameters:
radians - an angle in radians
Returns:
the angle in degrees

angle

public static double angle(com.vividsolutions.jts.geom.Coordinate p0,
                           com.vividsolutions.jts.geom.Coordinate p1)
Returns the angle of the vector from p0 to p1. The angle will be between -Pi and Pi.

Returns:
the angle (in radians) that p0-p1 makes with the positive x-axis.

angle

public static double angle(com.vividsolutions.jts.geom.Coordinate p)
Returns the angle of the vector from (0,) to p. The angle will be between -Pi and Pi.

Returns:
the angle (in radians) that p makes with the positive x-axis.

toRadians

public static double toRadians(double angleDegrees)
Converts from degrees to radians.

Parameters:
angleDegrees - an angle in degrees
Returns:
the angle in radians

angleBetween

public static double angleBetween(com.vividsolutions.jts.geom.Coordinate tail,
                                  com.vividsolutions.jts.geom.Coordinate tip1,
                                  com.vividsolutions.jts.geom.Coordinate tip2)
Returns the angle between two vectors. Will be between 0 and Pi.

Parameters:
tail - the tail of each vector
tip1 - the tip of one vector
tip2 - the tip of the other vector
Returns:
the angle between tail-tip1 and tail-tip2

interiorAngle

public static double interiorAngle(com.vividsolutions.jts.geom.Coordinate p0,
                                   com.vividsolutions.jts.geom.Coordinate p1,
                                   com.vividsolutions.jts.geom.Coordinate p2)
Computes the interior angle between two segments of a ring. The ring is assumed to be oriented in a clockwise direction.

Parameters:
p0 - a point of the ring
p1 - the next point of the ring
p2 - the next point of the ring
Returns:
the interior angle based at p1

getTurn

public static int getTurn(double a1,
                          double a2)
Returns whether an angle must turn clockwise or counterclockwise to overlap another angle.

Parameters:
a1 - an angle in radians
a2 - an angle in radians
Returns:
whether a1 must turn CLOCKWISE, COUNTERCLOCKWISE or NONE to overlap a2.

normalize

public static double normalize(double angle)
Computes the normalized value of an angle, which is the equivalent angle lying between -Pi and Pi.

Parameters:
angle - the angle to compute the normalized value of
Returns:
the normalized value of the angle

diff

public static double diff(double a1,
                          double a2)
Returns the angle between two vectors.

Parameters:
a1 - the angle of one vector, between -Pi and Pi
a2 - the angle of the other vector, between -Pi and Pi
Returns:
the angle (in radians) between the two vectors, between 0 and Pi