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)
|
| 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)
添加一个弯曲段,由三个新点定义,通过绘制Bézier曲线相交的当前坐标和指定的坐标
(x3,y3)的路径,使用指定的点
(x1,y1)和
(x2,y2) BéBezier控制点。
|
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。
|
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)
s -指定
Shape对象
public Double(Shape s, AffineTransform at)
Path2D对象从任意
Shape对象,由
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)的路径,使用指定的点
(x1,y1)和
(x2,y2) BéBezier控制点。所有的坐标都是以双精度指定的。
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界根据的bounds的contains(point)方法对象。明确地:
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对象遍历的Shape几何对象独立于使用任何其他PathIterator对象同时。
这是建议,但不保证,对象实施Shape界面分离迭代过程中任何发生在原物体的几何形状的变化可能在这样的迭代。
对于这类迭代器不是线程安全的,这意味着Path2D类不保证本Path2D修改对象的几何不影响任何迭代几何已经在过程。
getPathIterator 接口
Shape
at -
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.