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
ConstructorsConstructorDescriptionDouble()用默认的绕组规则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 voidappend(PathIterator pi, boolean connect) 将指定的PathIterator对象的几何形状附加到路径中,可能使用线段将新几何形状连接到现有路径段。final Objectclone()创建与此对象相同类的新对象。final voidcurveTo(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 voidlineTo(double x, double y) 通过从当前坐标到双精度指定的新坐标绘制直线,向路径添加一个点。final voidmoveTo(double x, double y) 通过移动到双精度指定的新坐标,向路径添加一个点。final voidquadTo(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
- 参见:
-