JTS Topology Suite version 1.12

com.vividsolutions.jts.algorithm
Class MinimumDiameter

java.lang.Object
  extended by 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.12