Class Intersection


  • public class Intersection
    extends java.lang.Object
    Functions to compute intersection points between lines and line segments.

    In general it is not possible to compute the intersection point of two lines exactly, due to numerical roundoff. This is particularly true when the lines are nearly parallel. These routines uses numerical conditioning on the input values to ensure that the computed value is very close to the correct value.

    The Z-ordinate is ignored, and not populated.

    Author:
    Martin Davis
    • Constructor Detail

      • Intersection

        public Intersection()
    • Method Detail

      • lineSegment

        public static Coordinate lineSegment​(Coordinate line1,
                                             Coordinate line2,
                                             Coordinate seg1,
                                             Coordinate seg2)
        Computes the intersection point of a line and a line segment (if any). There will be no intersection point if:
        • the segment does not intersect the line
        • the line or the segment are degenerate (have zero length)
        If the segment is collinear with the line the first segment endpoint is returned.
        Parameters:
        line1 - a point on the line
        line2 - a point on the line
        seg1 - an endpoint of the line segment
        seg2 - an endpoint of the line segment
        Returns:
        the intersection point, or null if it is not possible to find an intersection