java.lang.Object
java.awt.geom.Path2D
java.awt.geom.Path2D.Double
- 所有已实现的接口:
-
Shape
,Serializable
,Cloneable
- 封装类:
-
Path2D
Double
类定义了一个使用双精度浮点数存储坐标的几何路径。
- 自从:
- 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
ConstructorDescriptionDouble()
用默认的绕组规则Path2D.WIND_NON_ZERO
构造一个新的空双精度Path2D
对象。Double
(int rule) 用指定的绕组规则构造一个新的空双精度Path2D
对象,以控制需要定义路径内部的操作。Double
(int rule, int initialCapacity) 用指定的绕组规则和指定的初始容量构造一个新的空双精度Path2D
对象,用于存储路径段。从任意Shape
对象构造一个新的双精度Path2D
对象。Double
(Shape s, AffineTransform at) -
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 Rectangle2D
返回Shape
的高精度和更准确的边界框,比getBounds
方法更准确。final PathIterator
返回一个迭代器对象,沿着Shape
边界进行迭代,并提供对Shape
轮廓几何的访问。final void
lineTo
(double x, double y) 通过从当前坐标到双精度指定的新坐标绘制直线,向路径添加一个点。final void
moveTo
(double x, double y) 通过移动到双精度指定的新坐标,向路径添加一个点。final void
quadTo
(double x1, double y1, double x2, double 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
-
Double
public Double()用默认的绕组规则Path2D.WIND_NON_ZERO
构造一个新的空双精度Path2D
对象。- 自从:
- 1.6
-
Double
public Double(int rule) 用指定的绕组规则构造一个新的空双精度Path2D
对象,以控制需要定义路径内部的操作。- 参数:
-
rule
- 绕组规则 - 抛出:
-
IllegalArgumentException
- 如果rule
既不是Path2D.WIND_EVEN_ODD
也不是Path2D.WIND_NON_ZERO
- 自从:
- 1.6
- 另请参阅:
-
Double
public Double(int rule, int initialCapacity) 用指定的绕组规则和指定的初始容量构造一个新的空双精度Path2D
对象。此数字是对路径中有多少路径段的初始猜测,但根据需要扩展存储以存储添加到此路径的任何路径段。- 参数:
-
rule
- 绕组规则 -
initialCapacity
- 路径中路径段数量的估计值 - 抛出:
-
IllegalArgumentException
- 如果rule
既不是Path2D.WIND_EVEN_ODD
也不是Path2D.WIND_NON_ZERO
-
NegativeArraySizeException
- 如果initialCapacity
为负 - 自从:
- 1.6
- 另请参阅:
-
Double
- 参数:
-
s
- 指定的Shape
对象 - 抛出:
-
NullPointerException
- 如果s
为null
- 自从:
- 1.6
-
Double
从任意Shape
对象构造一个新的双精度Path2D
对象,通过AffineTransform
对象进行变换。此路径的所有初始几何和绕组规则都来自指定的Shape
对象,并由指定的AffineTransform
对象进行变换。- 参数:
-
s
- 指定的Shape
对象 -
at
- 指定的AffineTransform
对象 - 抛出:
-
NullPointerException
- 如果s
为null
- 自从:
- 1.6
-
-
Method Details
-
trimToSize
public final void trimToSize()从类中复制的描述:Path2D
将此Path2D实例的容量修剪到其当前大小。应用程序可以使用此操作来最小化路径的存储。- 指定者:
-
trimToSize
在类Path2D
-
moveTo
public final void moveTo(double x, double y) 通过移动到双精度指定的新坐标,向路径添加一个点。 -
lineTo
public final void lineTo(double x, double y) 通过从当前坐标到双精度指定的新坐标绘制直线,向路径添加一个点。 -
quadTo
public final void quadTo(double x1, double y1, double x2, double y2) 通过绘制一个二次曲线,该曲线与当前坐标和指定坐标(x2,y2)
相交,使用指定点(x1,y1)
作为二次参数控制点,向路径添加一个曲线段。所有坐标均以双精度指定。 -
curveTo
public final void curveTo(double x1, double y1, double x2, double y2, double x3, double y3) 通过绘制一个贝塞尔曲线,该曲线由三个新点定义,与当前坐标和指定坐标(x3,y3)
相交,使用指定点(x1,y1)
和(x2,y2)
作为贝塞尔控制点,向路径添加一个曲线段。所有坐标均以双精度指定。 -
append
将指定的PathIterator
对象的几何形状附加到路径中,可能使用线段将新几何形状连接到现有路径段。如果connect
参数为true
且路径不为空,则附加的Shape
的几何形状中的任何初始moveTo
都会转换为lineTo
段。如果这样一个连接的lineTo
段的目标坐标与当前打开子路径的结束坐标匹配,则该段将被省略为多余的。忽略指定Shape
的绕组规则,附加的几何形状由为此路径指定的绕组规则控制。 -
transform
使用指定的AffineTransform
转换此路径的几何形状。几何形状在原地转换,永久更改了由此对象定义的边界。 -
getBounds2D
返回Shape
的高精度和更准确的边界框,比getBounds
方法更紧凑。请注意,不能保证返回的Rectangle2D
是包围Shape
的最小边界框,只能保证Shape
完全位于指示的Rectangle2D
内。此方法返回的边界框通常比getBounds
方法返回的边界框更紧凑,并且永远不会因为溢出问题而失败,因为返回值可以是使用双精度值存储尺寸的Rectangle2D
的实例。请注意,内部定义的定义可能导致在
shape
的定义轮廓上的点可能不被认为包含在返回的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
- 返回:
-
一个新的
PathIterator
,沿着此Shape
的边界迭代,并提供对此Shape
轮廓的几何形状的访问 - 自从:
- 1.6
-
clone
创建与此对象相同类的新对象。- 指定者:
-
clone
在类Path2D
中 - 返回:
- 此实例的克隆。
- 抛出:
-
OutOfMemoryError
- 如果内存不足。 - 自从:
- 1.6
- 参见:
-