public class Polygon2D extends java.lang.Object implements java.awt.Shape, java.lang.Cloneable
| Modifier and Type | Field and Description |
|---|---|
int |
npoints
The total number of points.
|
double[] |
xpoints
The array of x coordinates.
|
double[] |
ypoints
The array of y coordinates.
|
| Constructor and Description |
|---|
Polygon2D()
Creates an empty Polygon2D.
|
Polygon2D(double[] xpoints,
double[] ypoints,
int npoints)
Constructs and initializes a
Polygon2D from the specified
parameters. |
Polygon2D(int[] xpoints,
int[] ypoints,
int npoints)
Constructs and initializes a
Polygon2D from the specified
parameters. |
Polygon2D(java.util.List<java.awt.geom.Point2D> points) |
Polygon2D(java.awt.Polygon pol)
Constructs and initializes a
Polygon2D from the specified
Polygon. |
Polygon2D(java.awt.geom.Rectangle2D rec)
Constructs and initializes a
Polygon2D from the specified
Rectangle2D. |
| Modifier and Type | Method and Description |
|---|---|
void |
addPoint(double x,
double y)
Appends the specified coordinates to this
Polygon2D. |
void |
addPoint(java.awt.geom.Point2D p) |
void |
calculatePath() |
java.lang.Object |
clone() |
boolean |
contains(double x,
double y)
Determines if the specified coordinates are inside this
Polygon. |
boolean |
contains(double x,
double y,
double w,
double h)
Tests if the interior of this
Polygon entirely
contains the specified set of rectangular coordinates. |
boolean |
contains(int x,
int y)
Determines whether the specified coordinates are inside this
Polygon. |
boolean |
contains(java.awt.Point p)
Determines whether the specified
Point is inside this Polygon. |
boolean |
contains(java.awt.geom.Point2D p)
Tests if a specified
Point2D is inside the boundary of this Polygon. |
boolean |
contains(java.awt.geom.Rectangle2D r)
Tests if the interior of this
Polygon entirely
contains the specified Rectangle2D. |
java.awt.Rectangle |
getBounds() |
java.awt.geom.Rectangle2D |
getBounds2D()
Returns the high precision bounding box of the
Shape. |
java.awt.geom.PathIterator |
getPathIterator(java.awt.geom.AffineTransform at)
Returns an iterator object that iterates along the boundary of this
Polygon and provides access to
the geometry of the outline of this Polygon. |
java.awt.geom.PathIterator |
getPathIterator(java.awt.geom.AffineTransform at,
double flatness)
Returns an iterator object that iterates along the boundary of
the
Polygon2D and provides access to the geometry of the
outline of the Shape. |
java.awt.Polygon |
getPolygon() |
static Polygon2D |
getPolygon2D(java.util.List<java.awt.geom.Point2D> points,
double maxDeviation)
Returns a polygon2D corresponding to the polygon estimation of the given (closed) contour points with the
specified
max deviation. |
Polyline2D |
getPolyline2D() |
boolean |
intersects(double x,
double y,
double w,
double h)
Tests if the interior of this
Polygon intersects the
interior of a specified set of rectangular coordinates. |
boolean |
intersects(java.awt.geom.Rectangle2D r)
Tests if the interior of this
Polygon intersects the
interior of a specified Rectangle2D. |
void |
reset()
Resets this
Polygon object to an empty polygon. |
public int npoints
npoints represents the number of valid points in this
Polygon.public double[] xpoints
npoints is equal to the
number of points in this Polygon2D.public Polygon2D()
public Polygon2D(java.awt.geom.Rectangle2D rec)
Polygon2D from the specified
Rectangle2D.rec - the Rectangle2Djava.lang.NullPointerException - rec is null.public Polygon2D(java.awt.Polygon pol)
Polygon2D from the specified
Polygon.pol - the Polygonjava.lang.NullPointerException - pol is null.public Polygon2D(double[] xpoints, double[] ypoints, int npoints)
Polygon2D from the specified
parameters.xpoints - an array of x coordinatesypoints - an array of y coordinatesnpoints - the total number of points in the Polygon2Djava.lang.NegativeArraySizeException - if the value of npoints is negative.java.lang.IndexOutOfBoundsException - if npoints is
greater than the length of xpoints or the length of ypoints.java.lang.NullPointerException - if xpoints or ypoints is null.public Polygon2D(int[] xpoints, int[] ypoints, int npoints)
Polygon2D from the specified
parameters.xpoints - an array of x coordinatesypoints - an array of y coordinatesnpoints - the total number of points in the Polygon2Djava.lang.NegativeArraySizeException - if the value of npoints is negative.java.lang.IndexOutOfBoundsException - if npoints is
greater than the length of xpoints or the length of ypoints.java.lang.NullPointerException - if xpoints or ypoints is null.public Polygon2D(java.util.List<java.awt.geom.Point2D> points)
public static Polygon2D getPolygon2D(java.util.List<java.awt.geom.Point2D> points, double maxDeviation)
max deviation.points - the list of points representing the input closed contour to transform to polygon.maxDeviation - maximum allowed deviation/distance of resulting polygon from the input contour (in pixel).public void reset()
Polygon object to an empty polygon.public java.lang.Object clone()
clone in class java.lang.Objectpublic void calculatePath()
public Polyline2D getPolyline2D()
public java.awt.Polygon getPolygon()
public void addPoint(java.awt.geom.Point2D p)
public void addPoint(double x, double y)
Polygon2D.x - the specified x coordinatey - the specified y coordinatepublic boolean contains(java.awt.Point p)
Point is inside this Polygon.p - the specified Point to be testedtrue if the Polygon contains the Point; false
otherwise.contains(double, double)public boolean contains(int x, int y)
Polygon.
x - the specified x coordinate to be testedy - the specified y coordinate to be testedtrue if this Polygon contains
the specified coordinates, (x, y); false otherwise.public java.awt.geom.Rectangle2D getBounds2D()
Shape.getBounds2D in interface java.awt.ShapeRectangle2D that precisely
bounds the Shape.public java.awt.Rectangle getBounds()
getBounds in interface java.awt.Shapepublic boolean contains(double x, double y)
Polygon. For the definition of
insideness, see the class comments of Shape.contains in interface java.awt.Shapex - the specified x coordinatey - the specified y coordinatetrue if the Polygon contains the
specified coordinates; false otherwise.public boolean contains(java.awt.geom.Point2D p)
Point2D is inside the boundary of this Polygon.contains in interface java.awt.Shapep - a specified Point2Dtrue if this Polygon contains the
specified Point2D; false otherwise.contains(double, double)public boolean intersects(double x, double y, double w, double h)
Polygon intersects the
interior of a specified set of rectangular coordinates.intersects in interface java.awt.Shapex - the x coordinate of the specified rectangular
shape's top-left cornery - the y coordinate of the specified rectangular
shape's top-left cornerw - the width of the specified rectangular shapeh - the height of the specified rectangular shapetrue if the interior of this Polygon and the interior of the
specified set of rectangular
coordinates intersect each other; false otherwise.public boolean intersects(java.awt.geom.Rectangle2D r)
Polygon intersects the
interior of a specified Rectangle2D.intersects in interface java.awt.Shaper - a specified Rectangle2Dtrue if this Polygon and the
interior of the specified Rectangle2D intersect each other; false otherwise.public boolean contains(double x, double y, double w, double h)
Polygon entirely
contains the specified set of rectangular coordinates.contains in interface java.awt.Shapex - the x coordinate of the top-left corner of the
specified set of rectangular coordinatesy - the y coordinate of the top-left corner of the
specified set of rectangular coordinatesw - the width of the set of rectangular coordinatesh - the height of the set of rectangular coordinatestrue if this Polygon entirely
contains the specified set of rectangular
coordinates; false otherwise.public boolean contains(java.awt.geom.Rectangle2D r)
Polygon entirely
contains the specified Rectangle2D.contains in interface java.awt.Shaper - the specified Rectangle2Dtrue if this Polygon entirely
contains the specified Rectangle2D; false otherwise.contains(double, double, double, double)public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform at)
Polygon and provides access to
the geometry of the outline of this Polygon. An optional AffineTransform can be specified so
that the coordinates returned in the iteration are transformed accordingly.getPathIterator in interface java.awt.Shapeat - an optional AffineTransform to be applied to the
coordinates as they are returned in the iteration, or null if untransformed coordinates are
desiredPathIterator object that provides access to the
geometry of this Polygon.public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform at, double flatness)
Polygon2D and provides access to the geometry of the
outline of the Shape. Only SEG_MOVETO, SEG_LINETO, and
SEG_CLOSE point types are returned by the iterator.
Since polygons are already flat, the flatness parameter
is ignored.getPathIterator in interface java.awt.Shapeat - an optional AffineTransform to be applied to the
coordinates as they are returned in the iteration, or null if untransformed coordinates are
desiredflatness - the maximum amount that the control points
for a given curve can vary from colinear before a subdivided
curve is replaced by a straight line connecting the
endpoints. Since polygons are already flat the flatness parameter is ignored.PathIterator object that provides access to the Shape object's geometry.