public static class Path2D.Double extends Path2D implements Serializable
Double类定义了一个几何路径,坐标存储在双精度浮点中。
Path2D.Double, Path2D.FloatWIND_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, setWindingRulepublic 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.