JTS Topology Suite version 1.13

## com.vividsolutions.jts.algorithm
Class MinimumDiameter

    java.lang.Object
      com.vividsolutions.jts.algorithm.MinimumDiameter

    public class MinimumDiameter

extends java.lang.Object

Computes the minimum diameter of a `Geometry`. The minimum diameter is defined to be the width of the smallest band that contains the geometry, where a band is a strip of the plane defined by two parallel lines. This can be thought of as the smallest hole that the geometry can be moved through, with a single rotation.

The first step in the algorithm is computing the convex hull of the Geometry. If the input Geometry is known to be convex, a hint can be supplied to avoid this computation.

This class can also be used to compute a line segment representing the minimum diameter, the supporting line segment of the minimum diameter, and a minimum rectangle enclosing the input geometry. This rectangle will have width equal to the minimum diameter, and have one side parallel to the supporting segment.

Version:
  1.7
See Also:
  `ConvexHull`

Constructor Summary
`MinimumDiameter(Geometry inputGeom)` Compute a minimum diameter for a given `Geometry`.
`MinimumDiameter(Geometry inputGeom, boolean isConvex)` Compute a minimum diameter for a giver `Geometry`, with a hint if the Geometry is convex (e.g.

Method Summary
`LineString` `getDiameter()` Gets a `LineString` which is a minimum diameter
`double` `getLength()` Gets the length of the minimum diameter of the input Geometry
`Geometry` `getMinimumRectangle()` Gets the minimum rectangular `Polygon` which encloses the input geometry.
`LineString` `getSupportingSegment()` Gets the segment forming the base of the minimum diameter
`Coordinate` `getWidthCoordinate()` Gets the `Coordinate` forming one end of the minimum diameter

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MinimumDiameter

    public MinimumDiameter(Geometry inputGeom)

  Compute a minimum diameter for a given `Geometry`.

  Parameters:
    `geom` - a Geometry

### MinimumDiameter

    public MinimumDiameter(Geometry inputGeom,
                           boolean isConvex)

  Compute a minimum diameter for a giver `Geometry`, with a hint if the Geometry is convex (e.g. a convex Polygon or LinearRing, or a two-point LineString, or a Point).

  Parameters:
    `geom` - a Geometry which is convex
    `isConvex` - `true` if the input geometry is convex

Method Detail

### getLength

    public double getLength()

  Gets the length of the minimum diameter of the input Geometry

  Returns:
    the length of the minimum diameter

### getWidthCoordinate

    public Coordinate getWidthCoordinate()

  Gets the `Coordinate` forming one end of the minimum diameter

  Returns:
    a coordinate forming one end of the minimum diameter

### getSupportingSegment

    public LineString getSupportingSegment()

  Gets the segment forming the base of the minimum diameter

  Returns:
    the segment forming the base of the minimum diameter

### getDiameter

    public LineString getDiameter()

  Gets a `LineString` which is a minimum diameter

  Returns:
    a `LineString` which is a minimum diameter

### getMinimumRectangle

    public Geometry getMinimumRectangle()

  Gets the minimum rectangular `Polygon` which encloses the input geometry. The rectangle has width equal to the minimum diameter, and a longer length. If the convex hull of the input is degenerate (a line or point) a `LineString` or `Point` is returned.

  The minimum rectangle can be used as an extremely generalized representation for the given geometry.

  Returns:
    the minimum rectangle enclosing the input (or a line or point if degenerate)

JTS Topology Suite version 1.13