Package edu.macalester.graphics
Class Path
java.lang.Object
edu.macalester.graphics.GraphicsObject
edu.macalester.graphics.Path
- Direct Known Subclasses:
Polygon
An arbitrary path or polygon with straight sides, possibly self-intersecting.
The path is internally represented as a list of points, with an edge of the path connecting each adjacent pair of points in the list. The order of the list is thus important. Incorrectly ordering the list can lead to self-intersecting polygon, which are neat, but possibly not what you want.
An optional final edge connects the first and last point in the list. You can disable this by passing `false` to the second argument of setPoints().
A path’s position
is the upper left corner of the bounding box of all its
points, and its size
is the size of that bounding box.
-
Constructor Summary
ConstructorDescriptionCreates a closed polygon from vertices passed as separate arguments.Create a closed polygon whose vertices comes from the given list of points.Create an optionally closed path whose vertices comes from the given list of points. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
For internal use.Returns the bounding box of this graphics object in its local coordinates.protected Object
For internal use only.Returns the color to fillColor that will be used to fill this shape if it is filled.Returns the color to strokeColor that will be used to stroke this shape if it is stroked.double
Returns the thickness of the stroke in pixels.boolean
isClosed()
Returns true if this path loops back to its starting point.boolean
isFilled()
Returns true if the interior of this shape will be filled with the fill color.boolean
Returns true if the interior of this shape will be stroked with the stroke color.static Path
makeTriangle
(double x0, double y0, double x1, double y1, double x2, double y2) Convenience method to create a triangle from three individual coordinates.void
setFillColor
(Paint fillColor) Sets the fill color to the given color.void
setFilled
(boolean filled) Causes the shape to be filled with the fill color when it is drawn.void
setStrokeColor
(Paint strokeColor) Sets the stroke color to the given color.void
setStroked
(boolean stroked) Causes the shape to be stroked with the stroke color when it is drawn.void
setStrokeWidth
(double width) Sets how thick the stroke is.void
setVertices
(List<Point> points) Replaces the path's coordinates, preserving its open/close status.void
setVertices
(List<Point> points, boolean closed) Changes the verices of this path, replacing any existing ones.boolean
testHitInLocalCoordinates
(double x, double y) Tests whether the given point is on the interior of this path.toString()
Returns a string representation of the PolygonMethods inherited from class edu.macalester.graphics.GraphicsObject
addObserver, changed, equals, getAnchor, getBoundsInParent, getCanvas, getCenter, getElementAt, getElementAtLocalCoordinates, getEmbeddedComponent, getHeight, getPosition, getRotation, getScale, getScaleX, getScaleY, getSize, getSizeInParent, getWidth, getX, getY, hashCode, isInBounds, moveBy, moveBy, removeObserver, renderToBuffer, rotateBy, setAnchor, setAnchor, setCenter, setCenter, setPosition, setPosition, setRotation, setScale, setScale, setScale, setX, setY, testHit
-
Constructor Details
-
Path
Create a closed polygon whose vertices comes from the given list of points. The list of points must not non-null. -
Path
Creates a closed polygon from vertices passed as separate arguments. -
Path
Create an optionally closed path whose vertices comes from the given list of points. The list of points must not non-null.- Parameters:
closed
- If true, a final line connects the end of the path back to the start, forming a polygon.
-
-
Method Details
-
makeTriangle
Convenience method to create a triangle from three individual coordinates. -
setVertices
Replaces the path's coordinates, preserving its open/close status. The coordinates are relative to the path’s container; the method ignores the path’s current position. -
setVertices
Changes the verices of this path, replacing any existing ones. The coordinates are relative to the path’s container; the method ignores the path’s current position.- Parameters:
closed
- If true, a final line connects the end of the path back to the start, forming a polygon.
-
drawInLocalCoordinates
Description copied from class:GraphicsObject
For internal use. Draws this graphics object on the screen in its local coordinates, without rotation or scaling.- Specified by:
drawInLocalCoordinates
in classGraphicsObject
-
getFillColor
Description copied from interface:Fillable
Returns the color to fillColor that will be used to fill this shape if it is filled. Note that there will still be no fill if isFilled() is false.- Specified by:
getFillColor
in interfaceFillable
-
setFillColor
Description copied from interface:Fillable
Sets the fill color to the given color. Automatically calls setFilled(true).- Specified by:
setFillColor
in interfaceFillable
-
getStrokeColor
Description copied from interface:Strokable
Returns the color to strokeColor that will be used to stroke this shape if it is stroked. Note that there will still be no stroke if isStroked() is false or the stroke width is zero.- Specified by:
getStrokeColor
in interfaceStrokable
-
setStrokeColor
Description copied from interface:Strokable
Sets the stroke color to the given color. Automatically calls setStroked(true).- Specified by:
setStrokeColor
in interfaceStrokable
-
isFilled
public boolean isFilled()Description copied from interface:Fillable
Returns true if the interior of this shape will be filled with the fill color. -
setFilled
public void setFilled(boolean filled) Description copied from interface:Fillable
Causes the shape to be filled with the fill color when it is drawn. -
isStroked
public boolean isStroked()Description copied from interface:Strokable
Returns true if the interior of this shape will be stroked with the stroke color. -
setStroked
public void setStroked(boolean stroked) Description copied from interface:Strokable
Causes the shape to be stroked with the stroke color when it is drawn.- Specified by:
setStroked
in interfaceStrokable
-
getStrokeWidth
public double getStrokeWidth()Description copied from interface:Strokable
Returns the thickness of the stroke in pixels.- Specified by:
getStrokeWidth
in interfaceStrokable
-
setStrokeWidth
public void setStrokeWidth(double width) Description copied from interface:Strokable
Sets how thick the stroke is. Automatically calls setStroked(true).- Specified by:
setStrokeWidth
in interfaceStrokable
-
isClosed
public boolean isClosed()Returns true if this path loops back to its starting point. -
testHitInLocalCoordinates
public boolean testHitInLocalCoordinates(double x, double y) Tests whether the given point is on the interior of this path. Does not account for stroke width.- Specified by:
testHitInLocalCoordinates
in classGraphicsObject
-
getBounds
Description copied from class:GraphicsObject
Returns the bounding box of this graphics object in its local coordinates.- Specified by:
getBounds
in classGraphicsObject
-
getEqualityAttributes
Description copied from class:GraphicsObject
For internal use only. Used to compute equals() and hashCode(). Returns an object whose equals() and hashCode() methods encompass the subclass-specific values that should be used to compute equality for the whole GraphicsObject.- Specified by:
getEqualityAttributes
in classGraphicsObject
-
toString
Returns a string representation of the Polygon
-