java.lang.Object
java.awt.geom.Path2D
java.awt.geom.Path2D.Float
- 所有已实现的接口:
-
Shape
,Serializable
,Cloneable
- 直接已知的子类:
-
GeneralPath
- 封装类:
-
Path2D
Float
类定义了一个几何路径,其中的坐标以单精度浮点数存储。
- 自1.6版本起:
- 1.6
- 另请参阅:
-
Nested Class Summary
Nested classes/interfaces declared in class java.awt.geom.Path2D
Path2D.Double, Path2D.Float
-
Field Summary
Fields declared in class java.awt.geom.Path2D
WIND_EVEN_ODD, WIND_NON_ZERO
-
Constructor Summary
ConstructorDescriptionFloat()
构造一个新的空的单精度Path2D
对象,其默认绕组规则为Path2D.WIND_NON_ZERO
。Float
(int rule) 构造一个新的空的单精度Path2D
对象,其指定绕组规则用于控制需要定义路径内部的操作。Float
(int rule, int initialCapacity) 构造一个新的空的单精度Path2D
对象,其指定绕组规则和指定的初始容量用于存储路径段。从任意Shape
对象构造一个新的单精度Path2D
对象。Float
(Shape s, AffineTransform at) 从任意Shape
对象构造一个新的单精度Path2D
对象,通过AffineTransform
对象进行变换。 -
Method Summary
Modifier and TypeMethodDescriptionfinal void
append
(PathIterator pi, boolean connect) 将指定PathIterator
对象的几何形状附加到路径中,可能使用线段将新几何形状连接到现有路径段。final Object
clone()
创建与此对象相同类的新对象。final void
curveTo
(double x1, double y1, double x2, double y2, double x3, double y3) 添加一个曲线段,由三个新点定义,通过绘制贝塞尔曲线将当前坐标和指定坐标(x3,y3)
相交,使用指定点(x1,y1)
和(x2,y2)
作为贝塞尔控制点。final void
curveTo
(float x1, float y1, float x2, float y2, float x3, float y3) 添加一个曲线段,由三个新点定义,通过绘制贝塞尔曲线将当前坐标和指定坐标(x3,y3)
相交,使用指定点(x1,y1)
和(x2,y2)
作为贝塞尔控制点。final Rectangle2D
返回Shape
的高精度和更准确的边界框,比getBounds
方法更准确。final PathIterator
返回一个迭代器对象,沿着Shape
边界进行迭代,并提供对Shape
轮廓几何的访问。final void
lineTo
(double x, double y) 通过从当前坐标到双精度指定的新坐标绘制直线来向路径添加一个点。final void
lineTo
(float x, float y) 通过从当前坐标到浮点精度指定的新坐标绘制直线来向路径添加一个点。final void
moveTo
(double x, double y) 通过移动到双精度指定的坐标来向路径添加一个点。final void
moveTo
(float x, float y) 通过移动到浮点精度指定的坐标来向路径添加一个点。final void
quadTo
(double x1, double y1, double x2, double y2) 通过绘制二次曲线,将当前坐标和指定坐标(x2,y2)
相交,使用指定点(x1,y1)
作为二次参数控制点,向路径添加一个曲线段。final void
quadTo
(float x1, float y1, float x2, float y2) 通过绘制二次曲线,将当前坐标和指定坐标(x2,y2)
相交,使用指定点(x1,y1)
作为二次参数控制点,向路径添加一个曲线段。final void
使用指定的AffineTransform
对象转换此路径的几何形状。final void
将此Path2D实例的容量修剪到其当前大小。Methods declared in class java.awt.geom.Path2D
append, closePath, contains, contains, contains, contains, contains, contains, contains, contains, createTransformedShape, getBounds, getCurrentPoint, getPathIterator, getWindingRule, intersects, intersects, intersects, intersects, reset, setWindingRule
-
Constructor Details
-
Float
public Float()构造一个新的空的单精度Path2D
对象,其默认绕组规则为Path2D.WIND_NON_ZERO
。- 自1.6版本起:
- 1.6
-
Float
public Float(int rule) 构造一个新的空的单精度Path2D
对象,其指定绕组规则用于控制需要定义路径内部的操作。- 参数:
-
rule
- 绕组规则 - 抛出:
-
IllegalArgumentException
- 如果rule
既不是Path2D.WIND_EVEN_ODD
也不是Path2D.WIND_NON_ZERO
- 自1.6版本起:
- 1.6
- 另请参阅:
-
Float
public Float(int rule, int initialCapacity) 构造一个新的空的单精度Path2D
对象,其指定绕组规则和指定的初始容量用于存储路径段。这个数字是对将要添加到路径中的路径段数量的初始猜测,但根据需要扩展存储以存储添加的任何路径段。- 参数:
-
rule
- 绕组规则 -
initialCapacity
- 路径中路径段数量的估计值 - 抛出:
-
IllegalArgumentException
- 如果rule
既不是Path2D.WIND_EVEN_ODD
也不是Path2D.WIND_NON_ZERO
-
NegativeArraySizeException
- 如果initialCapacity
为负数 - 自1.6版本起:
- 1.6
- 另请参阅:
-
Float
从任意Shape
对象构造一个新的单精度Path2D
对象。此路径的所有初始几何和绕组规则都来自指定的Shape
对象。- 参数:
-
s
- 指定的Shape
对象 - 抛出:
-
NullPointerException
- 如果s
为null
- 自1.6版本起:
- 1.6
-
Float
从任意Shape
对象构造一个新的单精度Path2D
对象,通过AffineTransform
对象进行变换。此路径的所有初始几何和绕组规则都来自指定的Shape
对象,并由指定的AffineTransform
对象进行变换。- 参数:
-
s
- 指定的Shape
对象 -
at
- 指定的AffineTransform
对象 - 抛出:
-
NullPointerException
- 如果s
为null
- 自1.6版本起:
- 1.6
-
-
Method Details
-
trimToSize
public final void trimToSize()从类中复制的描述:Path2D
将此Path2D实例的容量修剪到其当前大小。应用程序可以使用此操作来最小化路径的存储。- 指定者:
-
trimToSize
在类Path2D
-
moveTo
public final void moveTo(double x, double y) 通过移动到双精度指定的坐标来向路径添加一个点。 -
moveTo
public final void moveTo(float x, float y) 通过移动到浮点精度指定的坐标来向路径添加一个点。此方法提供了基本
Path2D
类上双精度moveTo()
方法的单精度变体。- 参数:
-
x
- 指定的X坐标 -
y
- 指定的Y坐标 - 自1.6版本起:
- 1.6
- 另请参阅:
-
lineTo
public final void lineTo(double x, double y) 通过从当前坐标到双精度指定的新坐标绘制直线来向路径添加一个点。 -
lineTo
public final void lineTo(float x, float y) 添加一个点到路径,通过从当前坐标到指定的新坐标(以浮点精度指定)画一条直线。此方法提供了基本
Path2D
类上双精度lineTo()
方法的单精度变体。- 参数:
-
x
- 指定的X坐标 -
y
- 指定的Y坐标 - 自从:
- 1.6
- 参见:
-
quadTo
public final void quadTo(double x1, double y1, double x2, double y2) 通过绘制一个二次曲线段,由两个新点定义,将路径添加到路径中,该曲线与当前坐标和指定坐标(x2,y2)
相交,使用指定点(x1,y1)
作为二次曲线的控制点。所有坐标均以双精度指定。 -
quadTo
public final void quadTo(float x1, float y1, float x2, float y2) 通过绘制一个二次曲线段,由两个新点定义,将路径添加到路径中,该曲线与当前坐标和指定坐标(x2,y2)
相交,使用指定点(x1,y1)
作为二次曲线的控制点。所有坐标均以浮点精度指定。此方法提供了基本
Path2D
类上双精度quadTo()
方法的单精度变体。- 参数:
-
x1
- 二次控制点的X坐标 -
y1
- 二次控制点的Y坐标 -
x2
- 最终端点的X坐标 -
y2
- 最终端点的Y坐标 - 自从:
- 1.6
- 参见:
-
curveTo
public final void curveTo(double x1, double y1, double x2, double y2, double x3, double y3) 通过绘制一个三次贝塞尔曲线段,由三个新点定义,将路径添加到路径中,该曲线与当前坐标和指定坐标(x3,y3)
相交,使用指定点(x1,y1)
和(x2,y2)
作为贝塞尔控制点。所有坐标均以双精度指定。 -
curveTo
public final void curveTo(float x1, float y1, float x2, float y2, float x3, float y3) 通过绘制一个三次贝塞尔曲线段,由三个新点定义,将路径添加到路径中,该曲线与当前坐标和指定坐标(x3,y3)
相交,使用指定点(x1,y1)
和(x2,y2)
作为贝塞尔控制点。所有坐标均以浮点精度指定。此方法提供了基本
Path2D
类上双精度curveTo()
方法的单精度变体。- 参数:
-
x1
- 第一个贝塞尔控制点的X坐标 -
y1
- 第一个贝塞尔控制点的Y坐标 -
x2
- 第二个贝塞尔控制点的X坐标 -
y2
- 第二个贝塞尔控制点的Y坐标 -
x3
- 最终端点的X坐标 -
y3
- 最终端点的Y坐标 - 自从:
- 1.6
- 参见:
-
append
将指定的PathIterator
对象的几何形状附加到路径,可能使用一条线段将新几何形状连接到现有路径段。如果connect
参数为true
且路径不为空,则附加的Shape
的几何中的任何初始moveTo
都会转换为lineTo
段。如果这样一个连接的lineTo
段的目标坐标与当前打开子路径的结束坐标匹配,则该段将被省略为多余的。忽略指定Shape
的绕组规则,附加的几何由为此路径指定的绕组规则控制。 -
transform
使用指定的AffineTransform
转换此路径的几何。几何将就地转换,从而永久更改此对象定义的边界。 -
getBounds2D
返回Shape
的高精度和更准确的边界框,比getBounds
方法更准确。请注意,不能保证返回的Rectangle2D
是包围Shape
的最小边界框,只能保证Shape
完全位于指示的Rectangle2D
内。此方法返回的边界框通常比getBounds
方法返回的边界框更紧凑,并且永远不会因溢出问题而失败,因为返回值可以是使用双精度值存储尺寸的Rectangle2D
的实例。请注意,内部定义的定义可能导致定义的形状轮廓上的点可能不被认为包含在返回的
bounds
对象中,但只有在这些点也不被认为包含在原始shape
中的情况下才是如此。如果一个
point
根据contains(point)
方法在shape
内部,那么根据bounds
的contains(point)
方法,它必须在返回的Rectangle2D
边界对象内部。具体来说:shape.contains(p)
要求bounds.contains(p)
如果一个
point
不在shape
内部,那么它可能仍然包含在bounds
对象中:bounds.contains(p)
不意味着shape.contains(p)
- 由以下指定:
-
getBounds2D
在接口Shape
- 返回:
-
Shape
的高精度边界框的实例。 - 自从:
- 1.6
- 参见:
-
getPathIterator
返回一个迭代器对象,沿着Shape
边界迭代,并提供对Shape
轮廓几何的访问。如果指定了可选的AffineTransform
,则迭代中返回的坐标将相应地进行转换。每次调用此方法都会返回一个新的
PathIterator
对象,独立于同时使用的任何其他PathIterator
对象遍历Shape
对象的几何。建议但不保证实现
Shape
接口的对象将正在进行的迭代与在这些迭代期间可能发生的对原始对象几何的任何更改隔离开来。此类的迭代器不是多线程安全的,这意味着
Path2D
类不保证对此Path2D
对象的几何的修改不会影响已经在进行的该几何的任何迭代。- 由以下指定:
-
getPathIterator
在接口Shape
- 参数:
-
at
- 可选的AffineTransform
,用于在迭代中返回的坐标上应用转换,如果希望使用未转换的坐标,则为null
- 返回:
-
一个新的
PathIterator
对象,独立遍历Shape
的几何。 - 自从:
- 1.6
-
clone
创建与此对象相同类的新对象。- 指定者:
-
clone
在类Path2D
- 返回:
- 此实例的克隆。
- 抛出:
-
OutOfMemoryError
- 如果内存不足。 - 自:
- 1.6
- 参见:
-