java.awt.geom

接口
异常
java.lang.Object
  继承者 java.awt.geom.Path2D
      继承者 java.awt.geom.Path2D.Double
所有已实现的接口:
Shape, Serializable, Cloneable
正在封闭类:
Path2D

public static class Path2D.Double
     
extends Path2D
implements Serializable

Double 类定义了一条几何路径,它具有以双精度浮点值形式存储的坐标。

从以下版本开始:
1.6
另请参见:
序列化表格

嵌套类摘要
 
从类 java.awt.geom.Path2D 继承的嵌套类/接口
Path2D.Double, Path2D.Float
 
字段摘要
 
从类 java.awt.geom.Path2D 继承的字段
WIND_EVEN_ODD, WIND_NON_ZERO
 
构造方法摘要
Path2D.Double()
          根据 Path2D.WIND_NON_ZERO 的默认旋绕规则构造一个新的双精度空 Path2D 对象。
Path2D.Double(int rule)
          根据指定旋绕规则构造一个新的双精度空 Path2D 对象,以控制需要定义路径内部的操作。
Path2D.Double(int rule, int initialCapacity)
          根据指定旋绕规则和指定初始容量构造一个新的双精度空 Path2D 对象,以存储路径段。
Path2D.Double(Shape s)
          根据任意 Shape 对象构造一个新的双精度 Path2D 对象。
Path2D.Double(Shape s, AffineTransform at)
          根据由 AffineTransform 对象变换的任意 Shape 对象构造一个新的双精度 Path2D 对象。
 
方法摘要
 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()
          返回一个高精度的、比 getBounds 方法更准确的 Shape 边界框。
 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 变换此路径的几何形状。
 
从类 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
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Path2D.Double

public Path2D.Double()
根据 Path2D.WIND_NON_ZERO 的默认旋绕规则构造一个新的双精度空 Path2D 对象。

从以下版本开始:
1.6

Path2D.Double

public Path2D.Double(int rule)
根据指定旋绕规则构造一个新的双精度空 Path2D 对象,以控制需要定义路径内部的操作。

参数:
rule - 旋绕规则
从以下版本开始:
1.6
另请参见:
Path2D.WIND_EVEN_ODD, Path2D.WIND_NON_ZERO

Path2D.Double

public Path2D.Double(int rule,
                     int initialCapacity)
根据指定旋绕规则和指定初始容量构造一个新的双精度空 Path2D 对象,以存储路径段。此数是对路径中的路径段数量的初始猜测,但存储量可以根据需要扩展,以存储添加到此路径的所有路径段。

参数:
rule - 旋绕规则
initialCapacity - 对路径中路径段数量的估计
从以下版本开始:
1.6
另请参见:
Path2D.WIND_EVEN_ODD, Path2D.WIND_NON_ZERO

Path2D.Double

public Path2D.Double(Shape s)
根据任意 Shape 对象构造一个新的双精度 Path2D 对象。此路径的所有初始几何形状和旋绕规则均取自指定的 Shape 对象。

参数:
s - 指定的 Shape 对象
从以下版本开始:
1.6

Path2D.Double

public Path2D.Double(Shape s,
                     AffineTransform at)
根据由 AffineTransform 对象变换的任意 Shape 对象构造一个新的双精度 Path2D 对象。此路径的所有初始几何形状和旋绕规则均取自指定的 Shape 对象,并由指定的 AffineTransform 对象变换。

参数:
s - 指定的 Shape 对象
at - 指定的 AffineTransform 对象
从以下版本开始:
1.6
方法详细信息

moveTo

public final void moveTo(double x,
                         double y)
通过移动到指定坐标(以双精度指定),将一个点添加到路径中。

指定者:
Path2D 中的 moveTo
参数:
x - 指定的 X 坐标
y - 指定的 Y 坐标
从以下版本开始:
1.6

lineTo

public final void lineTo(double x,
                         double y)
通过绘制一条从当前坐标到新指定坐标(以双精度指定)的直线,将一个点添加到路径中。

指定者:
Path2D 中的 lineTo
参数:
x - 指定的 X 坐标
y - 指定的 Y 坐标
从以下版本开始:
1.6

quadTo

public final void quadTo(double x1,
                         double y1,
                         double x2,
                         double y2)
通过绘制与当前坐标和指定坐标 (x2,y2) 都相交的二次曲线,并将指定点 (x1,y1) 用作二次曲线参数控制点,可以将由两个新点定义的曲线段添加到路径中。所有坐标都以双精度指定。

指定者:
Path2D 中的 quadTo
参数:
x1 - 二次曲线控制点的 X 坐标
y1 - 二次曲线控制点的 Y 坐标
x2 - 终端点的 X 坐标
y2 - 终端点的 Y 坐标
从以下版本开始:
1.6

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 曲线的控制点,可以将由三个新点定义的曲线段添加到路径中。所有坐标都以双精度指定。

指定者:
Path2D 中的 curveTo
参数:
x1 - 第一个 Bézier 控制点的 X 坐标
y1 - 第一个 Bézier 控制点的 Y 坐标
x2 - 第二个 Bézier 控制点的 X 坐标
y2 - 第二个 Bézier 控制点的 Y 坐标
x3 - 终端点的 X 坐标
y3 - 终端点的 Y 坐标
从以下版本开始:
1.6

append

public final void append(PathIterator pi,
                         boolean connect)
将指定 PathIterator 对象的几何形状添加到路径中,可能要使用一条线段将新几何形状连接到现有路径段。如果 connect 参数为 true 且路径是非空的,则添加的 Shape 几何形状的所有初始 moveTo 将被转换为 lineTo 段。如果这种连接 lineTo 段的目标坐标与当前开放子路径的结束坐标匹配,那么该线段将被作为多余线段忽略。指定 Shape 的旋绕规则将被忽略,添加的几何形状由为此路径指定的旋绕规则来管理。

指定者:
Path2D 中的 append
参数:
pi - 其几何形状将被添加到此路径的 PathIterator
connect - 一个 boolean 值,用于控制是否将初始 moveTo 段转换为 lineTo 段,从而将新几何形状连接到现有路径
从以下版本开始:
1.6

transform

public final void transform(AffineTransform at)
使用指定的 AffineTransform 变换此路径的几何形状。原地变换几何形状,它将永久更改由此对象定义的边界。

指定者:
Path2D 中的 transform
参数:
at - 用于变换区域的 AffineTransform
从以下版本开始:
1.6

getBounds2D

public final Rectangle2D getBounds2D()
返回一个高精度的、比 getBounds 方法更准确的 Shape 边界框。注意,不保证返回的 Rectangle2D 是包围 Shape 的最小边界框,只保证 Shape 完全位于指示的 Rectangle2D 中。此方法返回的边界框通常比 getBounds 方法返回的更紧密,而且永远不会因为溢出问题而出错,因为返回值可以是一个使用双精度值存储尺寸的 Rectangle2D 实例。

指定者:
接口 Shape 中的 getBounds2D
返回:
一个 Rectangle2D 实例,它是 Shape 的高精度边界框。
从以下版本开始:
1.6
另请参见:
Shape.getBounds()

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回一个沿着 Shape 边界迭代并提供对 Shape 轮廓几何形状的访问的迭代器对象。如果指定一个可选 AffineTransform,则相应地转换迭代中返回的坐标。

每次调用此方法都会返回一个最新的、遍历 Shape 对象几何形状的 PathIterator 对象,该对象独立于其他所有同时使用的 PathIterator 对象。

建议但不保证实现 Shape 接口的对象将进行中的迭代与该迭代期间可能对原始对象几何形状所做的任何更改隔离开来。

此类的迭代器不是多线程安全的,这意味着 Path2D 类不保证对此 Path2D 对象几何形状所作的修改不影响该几何形状已在处理中的迭代。

指定者:
接口 Shape 中的 getPathIterator
参数:
at - AffineTransform
返回:
沿此 Shape 边界进行迭代并提供对此 Shape 轮廓几何形状进行访问的新 PathIterator
从以下版本开始:
1.6

clone

public final Object clone()
创建一个与此对象具有相同类的新对象。

指定者:
Path2D 中的 clone
返回:
此实例的一个副本。
抛出:
OutOfMemoryError - 如果没有足够的内存。
从以下版本开始:
1.6
另请参见:
Cloneable