public abstract class Shape extends Node
Shape
class provides definitions of common properties for
objects that represent some form of geometric shape. These properties
include:
Paint
to be applied to the fillable interior of the
shape (see setFill
).
Paint
to be applied to stroke the outline of the
shape (see setStroke
).
StrokeType
).
On the other hand, stroking those same shapes can often lead to fuzzy outlines because the default stroking attributes specify both that the default stroke width is 1.0 coordinates which often maps to exactly 1 device pixel and also that the stroke should straddle the border of the shape, falling half on either side of the border. Since the borders in many common shapes tend to fall directly on integer coordinates and those integer coordinates often map precisely to integer device locations, the borders tend to result in 50% coverage over the pixel rows and columns on either side of the border of the shape rather than 100% coverage on one or the other. Thus, fills may typically be crisp, but strokes are often fuzzy.
Two common solutions to avoid these fuzzy outlines are to use wider
strokes that cover more pixels completely - typically a stroke width of
2.0 will achieve this if there are no scale transforms in effect - or
to specify either the StrokeType.INSIDE
or StrokeType.OUTSIDE
stroke styles - which will bias the default single unit stroke onto one
of the full pixel rows or columns just inside or outside the border of
the shape.
Type | Property and Description |
---|---|
ObjectProperty<Paint> |
fill
Defines parameters to fill the interior of an
Shape
using the settings of the Paint context. |
BooleanProperty |
smooth
Defines whether antialiasing hints are used or not for this
Shape . |
DoubleProperty |
strokeDashOffset
Defines a distance specified in user coordinates that represents
an offset into the dashing pattern.
|
ObjectProperty<StrokeLineCap> |
strokeLineCap
The end cap style of this
Shape as one of the following
values that define possible end cap styles:
StrokeLineCap.BUTT , StrokeLineCap.ROUND ,
and StrokeLineCap.SQUARE . |
ObjectProperty<StrokeLineJoin> |
strokeLineJoin
Defines the decoration applied where path segments meet.
|
DoubleProperty |
strokeMiterLimit
Defines the limit for the
StrokeLineJoin.MITER line join style. |
ObjectProperty<Paint> |
stroke
Defines parameters of a stroke that is drawn around the outline of
a
Shape using the settings of the specified Paint . |
ObjectProperty<StrokeType> |
strokeType
Defines the direction (inside, centered, or outside) that the strokeWidth
is applied to the boundary of the shape.
|
DoubleProperty |
strokeWidth
Defines a square pen line width.
|
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, visible
BASELINE_OFFSET_SAME_AS_HEIGHT
Constructor and Description |
---|
Shape() |
Modifier and Type | Method and Description |
---|---|
ObjectProperty<Paint> |
fillProperty()
Defines parameters to fill the interior of an
Shape
using the settings of the Paint context. |
static List<CssMetaData<? extends Styleable,?>> |
getClassCssMetaData() |
List<CssMetaData<? extends Styleable,?>> |
getCssMetaData()
This method should delegate to
Node.getClassCssMetaData() so that
a Node's CssMetaData can be accessed without the need for reflection. |
Paint |
getFill()
Gets the value of the property fill.
|
Paint |
getStroke()
Gets the value of the property stroke.
|
ObservableList<Double> |
getStrokeDashArray()
Defines the array representing the lengths of the dash segments.
|
double |
getStrokeDashOffset()
Gets the value of the property strokeDashOffset.
|
StrokeLineCap |
getStrokeLineCap()
Gets the value of the property strokeLineCap.
|
StrokeLineJoin |
getStrokeLineJoin()
Gets the value of the property strokeLineJoin.
|
double |
getStrokeMiterLimit()
Gets the value of the property strokeMiterLimit.
|
StrokeType |
getStrokeType()
Gets the value of the property strokeType.
|
double |
getStrokeWidth()
Gets the value of the property strokeWidth.
|
static Shape |
intersect(Shape shape1,
Shape shape2)
Returns a new
Shape which is created as an intersection of the
specified input shapes. |
boolean |
isSmooth()
Gets the value of the property smooth.
|
void |
setFill(Paint value)
Sets the value of the property fill.
|
void |
setSmooth(boolean value)
Sets the value of the property smooth.
|
void |
setStroke(Paint value)
Sets the value of the property stroke.
|
void |
setStrokeDashOffset(double value)
Sets the value of the property strokeDashOffset.
|
void |
setStrokeLineCap(StrokeLineCap value)
Sets the value of the property strokeLineCap.
|
void |
setStrokeLineJoin(StrokeLineJoin value)
Sets the value of the property strokeLineJoin.
|
void |
setStrokeMiterLimit(double value)
Sets the value of the property strokeMiterLimit.
|
void |
setStrokeType(StrokeType value)
Sets the value of the property strokeType.
|
void |
setStrokeWidth(double value)
Sets the value of the property strokeWidth.
|
BooleanProperty |
smoothProperty()
Defines whether antialiasing hints are used or not for this
Shape . |
DoubleProperty |
strokeDashOffsetProperty()
Defines a distance specified in user coordinates that represents
an offset into the dashing pattern.
|
ObjectProperty<StrokeLineCap> |
strokeLineCapProperty()
The end cap style of this
Shape as one of the following
values that define possible end cap styles:
StrokeLineCap.BUTT , StrokeLineCap.ROUND ,
and StrokeLineCap.SQUARE . |
ObjectProperty<StrokeLineJoin> |
strokeLineJoinProperty()
Defines the decoration applied where path segments meet.
|
DoubleProperty |
strokeMiterLimitProperty()
Defines the limit for the
StrokeLineJoin.MITER line join style. |
ObjectProperty<Paint> |
strokeProperty()
Defines parameters of a stroke that is drawn around the outline of
a
Shape using the settings of the specified Paint . |
ObjectProperty<StrokeType> |
strokeTypeProperty()
Defines the direction (inside, centered, or outside) that the strokeWidth
is applied to the boundary of the shape.
|
DoubleProperty |
strokeWidthProperty()
Defines a square pen line width.
|
static Shape |
subtract(Shape shape1,
Shape shape2)
Returns a new
Shape which is created by subtracting the specified
second shape from the first shape. |
static Shape |
union(Shape shape1,
Shape shape2)
Returns a new
Shape which is created as a union of the specified
input shapes. |
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBaselineOffset, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isResizable, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, maxHeight, maxWidth, minHeight, minWidth, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, prefHeight, prefWidth, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, resize, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visibleProperty
public final ObjectProperty<StrokeType> strokeTypeProperty
The image shows a shape without stroke and with a thick stroke applied inside, centered and outside.
getStrokeType()
,
setStrokeType(StrokeType)
public final DoubleProperty strokeWidthProperty
getStrokeWidth()
,
setStrokeWidth(double)
public final ObjectProperty<StrokeLineJoin> strokeLineJoinProperty
StrokeLineJoin.MITER
, StrokeLineJoin.BEVEL
,
and StrokeLineJoin.ROUND
. The image shows a shape
using the values in the mentioned order.
getStrokeLineJoin()
,
setStrokeLineJoin(StrokeLineJoin)
public final ObjectProperty<StrokeLineCap> strokeLineCapProperty
Shape
as one of the following
values that define possible end cap styles:
StrokeLineCap.BUTT
, StrokeLineCap.ROUND
,
and StrokeLineCap.SQUARE
. The image shows a line
using the values in the mentioned order.
getStrokeLineCap()
,
setStrokeLineCap(StrokeLineCap)
public final DoubleProperty strokeMiterLimitProperty
StrokeLineJoin.MITER
line join style.
A value of less than 1.0 will be treated as 1.0.
The image demonstrates the behavior. Miter length (A
) is computed
as the distance of the most inside point to the most outside point of
the joint, with the stroke width as a unit. If the miter length is bigger
than the given miter limit, the miter is cut at the edge of the shape
(B
). For the situation in the image it means that the miter
will be cut at B
for limit values less than 4.65
.
getStrokeMiterLimit()
,
setStrokeMiterLimit(double)
public final DoubleProperty strokeDashOffsetProperty
The image shows a stroke with dash array [25, 20, 5, 20]
and
a stroke with the same pattern and offset 45
which shifts
the pattern about the length of the first dash segment and
the following space.
getStrokeDashOffset()
,
setStrokeDashOffset(double)
public final ObjectProperty<Paint> fillProperty
Shape
using the settings of the Paint
context.
The default value is Color.BLACK
for all shapes except
Line, Polyline, and Path. The default value is null
for
those shapes.getFill()
,
setFill(Paint)
public final ObjectProperty<Paint> strokeProperty
Shape
using the settings of the specified Paint
.
The default value is null
for all shapes except
Line, Polyline, and Path. The default value is Color.BLACK
for
those shapes.getStroke()
,
setStroke(Paint)
public final BooleanProperty smoothProperty
Shape
.
If the value equals true the rendering hints are applied.isSmooth()
,
setSmooth(boolean)
public final void setStrokeType(StrokeType value)
The image shows a shape without stroke and with a thick stroke applied inside, centered and outside.
public final StrokeType getStrokeType()
The image shows a shape without stroke and with a thick stroke applied inside, centered and outside.
public final ObjectProperty<StrokeType> strokeTypeProperty()
The image shows a shape without stroke and with a thick stroke applied inside, centered and outside.
getStrokeType()
,
setStrokeType(StrokeType)
public final void setStrokeWidth(double value)
public final double getStrokeWidth()
public final DoubleProperty strokeWidthProperty()
getStrokeWidth()
,
setStrokeWidth(double)
public final void setStrokeLineJoin(StrokeLineJoin value)
StrokeLineJoin.MITER
, StrokeLineJoin.BEVEL
,
and StrokeLineJoin.ROUND
. The image shows a shape
using the values in the mentioned order.
public final StrokeLineJoin getStrokeLineJoin()
StrokeLineJoin.MITER
, StrokeLineJoin.BEVEL
,
and StrokeLineJoin.ROUND
. The image shows a shape
using the values in the mentioned order.
public final ObjectProperty<StrokeLineJoin> strokeLineJoinProperty()
StrokeLineJoin.MITER
, StrokeLineJoin.BEVEL
,
and StrokeLineJoin.ROUND
. The image shows a shape
using the values in the mentioned order.
getStrokeLineJoin()
,
setStrokeLineJoin(StrokeLineJoin)
public final void setStrokeLineCap(StrokeLineCap value)
Shape
as one of the following
values that define possible end cap styles:
StrokeLineCap.BUTT
, StrokeLineCap.ROUND
,
and StrokeLineCap.SQUARE
. The image shows a line
using the values in the mentioned order.
public final StrokeLineCap getStrokeLineCap()
Shape
as one of the following
values that define possible end cap styles:
StrokeLineCap.BUTT
, StrokeLineCap.ROUND
,
and StrokeLineCap.SQUARE
. The image shows a line
using the values in the mentioned order.
public final ObjectProperty<StrokeLineCap> strokeLineCapProperty()
Shape
as one of the following
values that define possible end cap styles:
StrokeLineCap.BUTT
, StrokeLineCap.ROUND
,
and StrokeLineCap.SQUARE
. The image shows a line
using the values in the mentioned order.
getStrokeLineCap()
,
setStrokeLineCap(StrokeLineCap)
public final void setStrokeMiterLimit(double value)
StrokeLineJoin.MITER
line join style.
A value of less than 1.0 will be treated as 1.0.
The image demonstrates the behavior. Miter length (A
) is computed
as the distance of the most inside point to the most outside point of
the joint, with the stroke width as a unit. If the miter length is bigger
than the given miter limit, the miter is cut at the edge of the shape
(B
). For the situation in the image it means that the miter
will be cut at B
for limit values less than 4.65
.
public final double getStrokeMiterLimit()
StrokeLineJoin.MITER
line join style.
A value of less than 1.0 will be treated as 1.0.
The image demonstrates the behavior. Miter length (A
) is computed
as the distance of the most inside point to the most outside point of
the joint, with the stroke width as a unit. If the miter length is bigger
than the given miter limit, the miter is cut at the edge of the shape
(B
). For the situation in the image it means that the miter
will be cut at B
for limit values less than 4.65
.
public final DoubleProperty strokeMiterLimitProperty()
StrokeLineJoin.MITER
line join style.
A value of less than 1.0 will be treated as 1.0.
The image demonstrates the behavior. Miter length (A
) is computed
as the distance of the most inside point to the most outside point of
the joint, with the stroke width as a unit. If the miter length is bigger
than the given miter limit, the miter is cut at the edge of the shape
(B
). For the situation in the image it means that the miter
will be cut at B
for limit values less than 4.65
.
getStrokeMiterLimit()
,
setStrokeMiterLimit(double)
public final void setStrokeDashOffset(double value)
The image shows a stroke with dash array [25, 20, 5, 20]
and
a stroke with the same pattern and offset 45
which shifts
the pattern about the length of the first dash segment and
the following space.
public final double getStrokeDashOffset()
The image shows a stroke with dash array [25, 20, 5, 20]
and
a stroke with the same pattern and offset 45
which shifts
the pattern about the length of the first dash segment and
the following space.
public final DoubleProperty strokeDashOffsetProperty()
The image shows a stroke with dash array [25, 20, 5, 20]
and
a stroke with the same pattern and offset 45
which shifts
the pattern about the length of the first dash segment and
the following space.
getStrokeDashOffset()
,
setStrokeDashOffset(double)
public final ObservableList<Double> getStrokeDashArray()
Shape
to be stroked,
the user space distance that the pen travels is accumulated.
The distance value is used to index into the dash array.
The pen is opaque when its current cumulative distance maps
to an even element of the dash array (counting from 0
) and
transparent otherwise.
An empty strokeDashArray indicates a solid line with no spaces.
An odd length strokeDashArray behaves the same as an even length
array constructed by implicitly repeating the indicated odd length
array twice in succession ([20, 5, 15]
behaves as if it
were [20, 5, 15, 20, 5, 15]
).
Note that each dash segment will be capped by the decoration specified by the current stroke line cap.
The image shows a shape with stroke dash array [25, 20, 5, 20]
and 3 different values for the stroke line cap:
StrokeLineCap.BUTT
, StrokeLineCap.SQUARE
(the default),
and StrokeLineCap.ROUND
public final void setFill(Paint value)
Shape
using the settings of the Paint
context.
The default value is Color.BLACK
for all shapes except
Line, Polyline, and Path. The default value is null
for
those shapes.public final Paint getFill()
Shape
using the settings of the Paint
context.
The default value is Color.BLACK
for all shapes except
Line, Polyline, and Path. The default value is null
for
those shapes.public final ObjectProperty<Paint> fillProperty()
Shape
using the settings of the Paint
context.
The default value is Color.BLACK
for all shapes except
Line, Polyline, and Path. The default value is null
for
those shapes.getFill()
,
setFill(Paint)
public final void setStroke(Paint value)
Shape
using the settings of the specified Paint
.
The default value is null
for all shapes except
Line, Polyline, and Path. The default value is Color.BLACK
for
those shapes.public final Paint getStroke()
Shape
using the settings of the specified Paint
.
The default value is null
for all shapes except
Line, Polyline, and Path. The default value is Color.BLACK
for
those shapes.public final ObjectProperty<Paint> strokeProperty()
Shape
using the settings of the specified Paint
.
The default value is null
for all shapes except
Line, Polyline, and Path. The default value is Color.BLACK
for
those shapes.getStroke()
,
setStroke(Paint)
public final void setSmooth(boolean value)
Shape
.
If the value equals true the rendering hints are applied.public final boolean isSmooth()
Shape
.
If the value equals true the rendering hints are applied.public final BooleanProperty smoothProperty()
Shape
.
If the value equals true the rendering hints are applied.isSmooth()
,
setSmooth(boolean)
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
Node.getClassCssMetaData()
so that
a Node's CssMetaData can be accessed without the need for reflection.getCssMetaData
in interface Styleable
getCssMetaData
in class Node
public static Shape union(Shape shape1, Shape shape2)
Shape
which is created as a union of the specified
input shapes.
The operation works with geometric areas occupied by the input shapes.
For a single Shape
such area includes the area occupied by the
fill if the shape has a non-null fill and the area occupied by the stroke
if the shape has a non-null stroke. So the area is empty for a shape
with null
stroke and null
fill. The area of an input
shape considered by the operation is independent on the type and
configuration of the paint used for fill or stroke. Before the final
operation the areas of the input shapes are transformed to the parent
coordinate space of their respective topmost parent nodes.
The resulting shape will include areas that were contained in any of the input shapes.
shape1 + shape2 = result +----------------+ +----------------+ +----------------+ |################| |################| |################| |############## | | ##############| |################| |############ | | ############| |################| |########## | | ##########| |################| |######## | | ########| |################| |###### | | ######| |###### ######| |#### | | ####| |#### ####| |## | | ##| |## ##| +----------------+ +----------------+ +----------------+
shape1
- the first shapeshape2
- the second shapeShape
public static Shape subtract(Shape shape1, Shape shape2)
Shape
which is created by subtracting the specified
second shape from the first shape.
The operation works with geometric areas occupied by the input shapes.
For a single Shape
such area includes the area occupied by the
fill if the shape has a non-null fill and the area occupied by the stroke
if the shape has a non-null stroke. So the area is empty for a shape
with null
stroke and null
fill. The area of an input
shape considered by the operation is independent on the type and
configuration of the paint used for fill or stroke. Before the final
operation the areas of the input shapes are transformed to the parent
coordinate space of their respective topmost parent nodes.
The resulting shape will include areas that were contained only in the first shape and not in the second shape.
shape1 - shape2 = result +----------------+ +----------------+ +----------------+ |################| |################| | | |############## | | ##############| |## | |############ | | ############| |#### | |########## | | ##########| |###### | |######## | | ########| |######## | |###### | | ######| |###### | |#### | | ####| |#### | |## | | ##| |## | +----------------+ +----------------+ +----------------+
shape1
- the first shapeshape2
- the second shapeShape
public static Shape intersect(Shape shape1, Shape shape2)
Shape
which is created as an intersection of the
specified input shapes.
The operation works with geometric areas occupied by the input shapes.
For a single Shape
such area includes the area occupied by the
fill if the shape has a non-null fill and the area occupied by the stroke
if the shape has a non-null stroke. So the area is empty for a shape
with null
stroke and null
fill. The area of an input
shape considered by the operation is independent on the type and
configuration of the paint used for fill or stroke. Before the final
operation the areas of the input shapes are transformed to the parent
coordinate space of their respective topmost parent nodes.
The resulting shape will include only areas that were contained in both of the input shapes.
shape1 + shape2 = result +----------------+ +----------------+ +----------------+ |################| |################| |################| |############## | | ##############| | ############ | |############ | | ############| | ######## | |########## | | ##########| | #### | |######## | | ########| | | |###### | | ######| | | |#### | | ####| | | |## | | ##| | | +----------------+ +----------------+ +----------------+
shape1
- the first shapeshape2
- the second shapeShape
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2008, 2017, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.