Class CGAlgorithmsDD

Hierarchy: Object , CGAlgorithmsDD
public class CGAlgorithmsDD
Implements basic computational geometry algorithms using DD arithmetic.
Authors:
Martin Davis
public static int orientationIndex(Coordinate p1, Coordinate p2, Coordinate q)
Returns the index of the direction of the point q relative to a vector specified by p1-p2.
Parameters:
p1 - p1 the origin point of the vector
p2 - p2 the final point of the vector
q - q the point to compute the direction to
Returns:
1 if q is counter-clockwise (left) from p1-p2
-1 if q is clockwise (right) from p1-p2
0 if q is collinear with p1-p2
public static int signOfDet2x2(DD x1, DD y1, DD x2, DD y2)
Computes the sign of the determinant of the 2x2 matrix with the given entries.
Returns:
-1 if the determinant is negative,
1 if the determinant is positive,
0 if the determinant is 0.
public static int signOfDet2x2(double dx1, double dy1, double dx2, double dy2)
Computes the sign of the determinant of the 2x2 matrix with the given entries.
Returns:
-1 if the determinant is negative,
1 if the determinant is positive,
0 if the determinant is 0.
public static Coordinate intersection(Coordinate p1, Coordinate p2, Coordinate q1, Coordinate q2)
Computes an intersection point between two lines using DD arithmetic. If the lines are parallel (either identical or separate) a null value is returned.
Parameters:
p1 - p1 an endpoint of line segment 1
p2 - p2 an endpoint of line segment 1
q1 - q1 an endpoint of line segment 2
q2 - q2 an endpoint of line segment 2
Returns:
an intersection point if one exists, or null if the lines are parallel