- java.lang.Object
-
- java.awt.geom.Path2D
-
- java.awt.geom.Path2D.Double
-
- All Implemented Interfaces:
-
Shape
,Serializable
,Cloneable
- Enclosing class:
- Path2D
public static class Path2D.Double extends Path2D implements Serializable
Double
类定义了一个几何路径,坐标存储在双精度浮点中。- 从以下版本开始:
- 1.6
- 另请参见:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.awt.geom.Path2D
Path2D.Double, Path2D.Float
-
-
Field Summary
-
Fields inherited from class java.awt.geom.Path2D
WIND_EVEN_ODD, WIND_NON_ZERO
-
-
构造方法摘要
构造方法 Constructor 描述 Double()
构造一个新的空双精度Path2D
对象,默认缠绕规则为Path2D.WIND_NON_ZERO
。Double(int rule)
使用指定的绕组规则构造一个新的空双精度Path2D
对象,以控制需要定义路径内部的操作。Double(int rule, int initialCapacity)
使用指定的绕组规则和指定的初始容量构建新的空双精度Path2D
对象,以存储路径段。Double(Shape s)
构造一个新的双精度Path2D
从任意对象Shape
对象。Double(Shape s, AffineTransform at)
从任意的Shape
对象构造一个新的双精度Path2D
对象,由一个AffineTransform
对象转换。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
append(PathIterator pi, boolean connect)
将指定的PathIterator
对象的几何附加到路径,可能将新几何体连接到具有线段的现有路径段。Object
clone()
创建与此对象相同类的新对象。void
curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
通过绘制与当前坐标和指定坐标(x3,y3)
相交的Bézier曲线,使用指定点(x1,y1)
和(x2,y2)
作为Bézier控制点,将一个由三个新点定义的曲线段添加到路径。Rectangle2D
getBounds2D()
返回Shape
比getBounds
方法更高精度和更准确的边界框。PathIterator
getPathIterator(AffineTransform at)
返回一个沿着Shape
边界迭代的迭代器对象,并提供对Shape
大纲的几何形状的访问。void
lineTo(double x, double y)
通过从当前坐标绘制直线到双精度指定的新指定坐标,向路径添加点。void
moveTo(double x, double y)
通过移动到以双精度指定的指定坐标添加点到路径。void
quadTo(double x1, double y1, double x2, double y2)
通过绘制与当前坐标和指定坐标(x2,y2)
相交的二次曲线,使用指定点(x1,y1)
作为二次参数控制点,将一个由两个新点定义的曲线段添加到路径。void
transform(AffineTransform at)
使用指定的AffineTransform
转换此路径的几何。-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from 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
-
-
-
-
构造方法详细信息
-
Double
public Double()
构造一个新的空双精度Path2D
对象,其默认缠绕规则为Path2D.WIND_NON_ZERO
。- 从以下版本开始:
- 1.6
-
Double
public Double(int rule)
使用指定的绕组规则构造新的空双精度Path2D
对象,以控制需要定义路径内部的操作。- 参数
-
rule
- 绕线规则 - 从以下版本开始:
- 1.6
- 另请参见:
-
Path2D.WIND_EVEN_ODD
,Path2D.WIND_NON_ZERO
-
Double
public Double(int rule, int initialCapacity)
使用指定的绕组规则和指定的初始容量构建新的空双精度Path2D
对象,以存储路径段。 这个数字是关于路径中有多少路径段的初步猜测,但根据需要扩展存储,以存储将任何路径段添加到此路径。- 参数
-
rule
- 绕线规则 -
initialCapacity
- 路径中路径段数的估计 - 从以下版本开始:
- 1.6
- 另请参见:
-
Path2D.WIND_EVEN_ODD
,Path2D.WIND_NON_ZERO
-
Double
public Double(Shape s)
构造一个新的双精度Path2D
从任意对象Shape
对象。 此路径的所有初始几何和绕组规则均取自指定的Shape
对象。- 参数
-
s
- 指定的Shape
对象 - 从以下版本开始:
- 1.6
-
Double
public Double(Shape s, AffineTransform at)
构造一个新的单精度Path2D
从任意物体Shape
对象,由一个转化AffineTransform
对象。 此路径的所有初始几何和绕组规则均取自指定的Shape
对象,并由指定的AffineTransform
对象进行转换。- 参数
-
s
- 指定的Shape
对象 -
at
- 指定的AffineTransform
对象 - 从以下版本开始:
- 1.6
-
-
方法详细信息
-
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)
相交的Bézier曲线,使用指定点(x1,y1)
和(x2,y2)
作为Bézier控制点,将一个由三个新点定义的曲线段添加到路径。 所有坐标均以双精度指定。
-
append
public final void append(PathIterator pi, boolean connect)
将指定的PathIterator
对象的几何附加到路径,可能将新几何体连接到具有线段的现有路径段。 如果connect
参数为true
,并且路径不为空,则附加的Shape
的几何中的任何初始moveTo
Shape
将转换为lineTo
段。 如果这样的连接lineTo
段的目标坐标与当前打开的子路径的结束坐标匹配,那么该段被省略为多余的。 指定的Shape
的绕组规则将被忽略,附加的几何体由为此路径指定的绕组规则控制。
-
transform
public final void transform(AffineTransform at)
使用指定的AffineTransform
转换此路径的几何。 几何体被转换到位,永久地改变由该对象定义的边界。
-
getBounds2D
public final Rectangle2D getBounds2D()
返回Shape
比getBounds
方法更高精度和更准确的边界框。 请注意,不保证返回的Rectangle2D
是封闭的最小边界框Shape
,只表示Shape
完全在指定的范围内Rectangle2D
。 该方法返回的边界通常比getBounds
方法返回的getBounds
更小,因为溢出问题永远不会失败,因为返回值可以是使用双精度值存储维度的Rectangle2D
的实例。请注意, definition of insideness可能导致shape定义轮廓上的
shape
不能被视为包含在返回的bounds
对象中的情况,但仅在原始shape
中这些点也未被包含的shape
。如果
point
是内部shape
根据contains(point)
方法,那么它必须是内部返回Rectangle2D
界限根据对象contains(point)
所述的方法bounds
。 特别:shape.contains(p)
需要bounds.contains(p)
如果一个
point
不在shape
,那么它可能仍然包含在bounds
对象中:bounds.contains(p)
并不表示shape.contains(p)
- Specified by:
-
getBounds2D
在接口Shape
- 结果
-
的实例
Rectangle2D
那是一个高精度边界框Shape
。 - 从以下版本开始:
- 1.6
- 另请参见:
-
Shape.getBounds()
-
getPathIterator
public final PathIterator getPathIterator(AffineTransform at)
返回一个沿Shape
边界迭代的迭代器对象,并提供对Shape
大纲的几何形状的访问。 如果指定了可选的AffineTransform
,则相应地转换迭代中返回的坐标。此方法每次调用返回一个新鲜
PathIterator
对象横穿的几何形状Shape
从任何其他独立对象PathIterator
在使用中在相同的时间对象。建议但不能保证实现
Shape
接口的对象隔离在这些迭代期间原始对象的几何可能发生的任何更改的迭代。此类的迭代器不是多线程安全的,这意味着
Path2D
类不保证对此Path2D
对象的几何的修改不会影响已经在处理的该几何的任何迭代。- Specified by:
-
getPathIterator
在接口Shape
- 参数
-
at
- 一个AffineTransform
- 结果
-
一个新的
PathIterator
,沿着这个Shape
的边界进行迭代,并提供对这个Shape
的大纲的几何形状的访问 - 从以下版本开始:
- 1.6
-
clone
public final Object clone()
创建与此对象相同类的新对象。- Specified by:
-
clone
在Path2D
- 结果
- 这个实例的一个克隆。
- 异常
-
OutOfMemoryError
- 如果没有足够的内存 - 从以下版本开始:
- 1.6
- 另请参见:
-
Cloneable
-
-