org.apache.commons.math3.geometry.euclidean.twod

## Class Segment

- java.lang.Object
- - org.apache.commons.math3.geometry.euclidean.twod.Segment

- Direct Known Subclasses:
    PolygonsSet.ComparableSegment

      public class Segment
      extends java.lang.Object

  Simple container for a two-points segment.
  Since:
    3.0
  Version:
    $Id: Segment.java 1422195 2012-12-15 06:45:18Z psteitz $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private Vector2D` | `end` End point of the segments.
    `private Line` | `line` Line containing the segment.
    `private Vector2D` | `start` Start point of the segment.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Segment(Vector2D start, Vector2D end, Line line)` Build a segment.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `distance(Vector2D p)` Calculates the shortest distance from a point to this line segment.
    `Vector2D` | `getEnd()` Get the end point of the segment.
    `Line` | `getLine()` Get the line containing the segment.
    `Vector2D` | `getStart()` Get the start point of the segment.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### start

          private final Vector2D start

      Start point of the segment.

    - #### end

          private final Vector2D end

      End point of the segments.

    - #### line

          private final Line line

      Line containing the segment.

  - ### Constructor Detail

    - #### Segment

          public Segment(Vector2D start,
                 Vector2D end,
                 Line line)

      Build a segment.
      Parameters:
        `start` - start point of the segment
        `end` - end point of the segment
        `line` - line containing the segment

  - ### Method Detail

    - #### getStart

          public Vector2D getStart()

      Get the start point of the segment.
      Returns:
        start point of the segment

    - #### getEnd

          public Vector2D getEnd()

      Get the end point of the segment.
      Returns:
        end point of the segment

    - #### getLine

          public Line getLine()

      Get the line containing the segment.
      Returns:
        line containing the segment

    - #### distance

          public double distance(Vector2D p)

      Calculates the shortest distance from a point to this line segment.

      If the perpendicular extension from the point to the line does not cross in the bounds of the line segment, the shortest distance to the two end points will be returned.

      Algorithm adapted from: Thread @ Codeguru
      Parameters:
        `p` - to check
      Returns:
        distance between the instance and the point
      Since:
        3.1

Copyright (c) 2003-2013 Apache Software Foundation