public interface Shape
PathIterator, and has callbacks for determining bounding box,
where points and rectangles lie in relation to the shape, and tracing
the trajectory.
A point is inside if it is completely inside, or on the boundary and
adjacent points in the increasing x or y direction are completely inside.
Unclosed shapes are considered as implicitly closed when performing
contains or intersects.
PathIterator,
AffineTransform,
FlatteningPathIterator,
GeneralPath| Modifier and Type | Method and Description |
|---|---|
boolean |
contains(double x,
double y)
Test if the coordinates lie in the shape.
|
boolean |
contains(double x,
double y,
double w,
double h)
Test if a high-precision rectangle lies completely in the shape.
|
boolean |
contains(Point2D p)
Test if the point lie in the shape.
|
boolean |
contains(Rectangle2D r)
Test if a high-precision rectangle lies completely in the shape.
|
Rectangle |
getBounds()
Returns a
Rectange that bounds the shape. |
Rectangle2D |
getBounds2D()
Returns a high precision bounding box of the shape.
|
PathIterator |
getPathIterator(AffineTransform transform)
Return an iterator along the shape boundary.
|
PathIterator |
getPathIterator(AffineTransform transform,
double flatness)
Return an iterator along the flattened version of the shape boundary.
|
boolean |
intersects(double x,
double y,
double w,
double h)
Test if a high-precision rectangle intersects the shape.
|
boolean |
intersects(Rectangle2D r)
Test if a high-precision rectangle intersects the shape.
|
Rectangle getBounds()
Rectange that bounds the shape. There is no
guarantee that this is the minimum bounding box, particularly if
the shape overflows the finite integer range of a bound. Generally,
getBounds2D returns a tighter bound.getBounds2D()Rectangle2D getBounds2D()
getBounds()boolean contains(double x, double y)
x - the x coordinatey - the y coordinateboolean contains(Point2D p)
p - the high-precision pointNullPointerException - if p is nullboolean intersects(double x, double y, double w, double h)
Area
class can be used for more precise answers.x - the x coordinate of the rectangley - the y coordinate of the rectanglew - the width of the rectangle, undefined results if negativeh - the height of the rectangle, undefined results if negativeAreaboolean intersects(Rectangle2D r)
Area
class can be used for more precise answers.r - the rectangleNullPointerException - if r is nullintersects(double, double, double, double)boolean contains(double x, double y, double w, double h)
Area
class can be used for more precise answers.x - the x coordinate of the rectangley - the y coordinate of the rectanglew - the width of the rectangle, undefined results if negativeh - the height of the rectangle, undefined results if negativeAreaboolean contains(Rectangle2D r)
Area
class can be used for more precise answers.r - the rectangleNullPointerException - if r is nullcontains(double, double, double, double)PathIterator getPathIterator(AffineTransform transform)
transform - an optional transform to apply to the
iterator (null permitted).PathIterator getPathIterator(AffineTransform transform, double flatness)
If the optional transform is provided, the iterator is transformed accordingly. Each call returns a new object, independent from others in use. It is recommended, but not required, that the Shape isolate iterations from future changes to the boundary, and document this fact.
transform - an optional transform to apply to the
iterator (null permitted).flatness - the maximum distance for deviation from the real boundary