public static class Path2D.Double extends Path2D implements Serializable
Double
类定义了一个几何路径,坐标存储在双精度浮点中。
Path2D.Double, Path2D.Float
WIND_EVEN_ODD, WIND_NON_ZERO
Constructor and Description |
---|
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 | Method and Description |
---|---|
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)
(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)
(x2,y2) ,使用指定点
(x1,y1) 作为二次参数控制点,将一个由两个新点定义的曲线段添加到路径。
|
void |
transform(AffineTransform at)
使用指定的 AffineTransform 转换此路径的几何。
|
append, closePath, contains, contains, contains, contains, contains, contains, contains, contains, createTransformedShape, getBounds, getCurrentPoint, getPathIterator, getWindingRule, intersects, intersects, intersects, intersects, reset, setWindingRule
public Double()
Path2D
对象,默认绕组规则为
Path2D.WIND_NON_ZERO
。
public Double(int rule)
Path2D
对象,以控制需要定义路径内部的操作。
rule
- 绕线规则
Path2D.WIND_EVEN_ODD
,
Path2D.WIND_NON_ZERO
public Double(int rule, int initialCapacity)
Path2D
对象,以存储路径段。
这个数字是关于路径中有多少路径段的初步猜测,但根据需要扩展存储,以存储将任何路径段添加到此路径。
rule
- 绕线规则
initialCapacity
- 路径中路径段数量的估计
Path2D.WIND_EVEN_ODD
,
Path2D.WIND_NON_ZERO
public Double(Shape s)
Path2D
从任意对象Shape
对象。
该路径的所有初始几何和绕组规则均取自指定的Shape
对象。
s
- 指定的
Shape
对象
public Double(Shape s, AffineTransform at)
Shape
对象构造一个新的双精度Path2D
对象,由AffineTransform
对象转换。
此路径的所有初始几何和绕组规则均取自指定的Shape
对象,并由指定的AffineTransform
对象进行转换。
s
- 指定的
Shape
对象
at
- 指定的
AffineTransform
对象
public final void moveTo(double x, double y)
public final void lineTo(double x, double y)
public final void quadTo(double x1, double y1, double x2, double y2)
(x2,y2)
,使用指定点(x1,y1)
作为二次参数控制点,将一个由两个新点定义的曲线段添加到路径。
所有坐标均以双精度指定。
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控制点,将一个由三个新点定义的曲线段添加到路径。
所有坐标均以双精度指定。
public final void append(PathIterator pi, boolean connect)
PathIterator
对象的几何体附加到路径,可能将新几何体连接到具有线段的现有路径段。
如果connect
参数是true
,并且路径不为空,则附加的Shape
的几何中的任何初始的moveTo
将变成lineTo
段。
如果这种连接lineTo
段的目标坐标与当前打开的子路径的结束坐标匹配,那么该段被省略为多余的。
指定的卷绕规则Shape
被忽略,并且在所附的几何形状由该路径所指定的缠绕规则支配。
public final void transform(AffineTransform at)
AffineTransform
转换此路径的几何。
几何体被转换到位,永久地改变由该对象定义的边界。
public final Rectangle2D getBounds2D()
Shape
比getBounds
方法。
需要注意的是没有保证返回Rectangle2D
是最小的边框包围Shape
,只表示Shape
完全在指定的范围内Rectangle2D
。
通过此方法返回的边界框通常比通过返回的更紧密getBounds
方法,而且永远不会因为溢出问题,因为返回值可以是实例Rectangle2D
一个使用双精度值存储尺寸。
需要注意的是definition of insideness可能会导致出现对的定义轮廓点的情况下shape
可能不被认为包含在返回bounds
对象,但只有在这些点也未审议了原有的情况下shape
。
如果一个point
是在shape
内,根据contains(point)
方法,那么它必须在返回的Rectangle2D
边界对象中,按照contains(point)
方法的bounds
。 特别:
shape.contains(p)
要求bounds.contains(p)
如果point
不在shape
,那么它可能仍然包含在bounds
对象中:
bounds.contains(p)
并不代表shape.contains(p)
getBounds2D
在界面
Shape
Rectangle2D
那是一个高精度边界框
Shape
。
Shape.getBounds()
public final PathIterator getPathIterator(AffineTransform at)
Shape
边界进行迭代的迭代器对象,并提供对Shape
大纲的几何形状的访问。
如果指定了可选的AffineTransform
,则相应地转换迭代中返回的坐标。
对此方法的每次调用都将返回一个新的PathIterator
对象,该对象与所使用的任何其他PathIterator
对象同时Shape
对象的几何体。
建议但不能保证实现Shape
接口的对象会隔离正在进行的迭代,因为在这种迭代期间原始对象的几何可能发生的任何更改。
该类的迭代器不是多线程安全的,这意味着Path2D
类不保证对此Path2D
对象的几何的Path2D
不会影响已经在处理的该几何的任何迭代。
getPathIterator
在接口
Shape
at
- an
AffineTransform
PathIterator
,沿着这个
Shape
的边界进行迭代,并提供对这个
Shape
的大纲的几何访问
public final Object clone()
clone
在类别
Path2D
OutOfMemoryError
- 如果没有足够的内存
Cloneable
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 © 1993, 2014, Oracle and/or its affiliates. All rights reserved.