JavaTM Platform
Standard Ed. 6

java.awt.geom
类 QuadCurve2D

java.lang.Object
  继承者 java.awt.geom.QuadCurve2D
所有已实现的接口:
Shape, Cloneable
直接已知子类:
QuadCurve2D.Double, QuadCurve2D.Float

public abstract class QuadCurve2D
extends Object
implements Shape, Cloneable

QuadCurve2D 类定义 (x,y) 坐标空间内的二次参数曲线段。

此类是所有存储 2D 二次曲线段的对象的惟一抽象超类。坐标的实际存储表示形式由子类决定。

从以下版本开始:
1.2

嵌套类摘要
static class QuadCurve2D.Double
          使用 double 坐标指定的二次参数曲线段。
static class QuadCurve2D.Float
          使用 float 坐标指定的二次参数曲线段。
 
构造方法摘要
protected QuadCurve2D()
          这是一个不可直接实例化的抽象类。
 
方法摘要
 Object clone()
          创建一个与此对象具有相同类和相同内容的新对象。
 boolean contains(double x, double y)
          测试指定坐标是否在 Shape 的边界内。
 boolean contains(double x, double y, double w, double h)
          测试 Shape 内部是否完全包含指定矩形区域。
 boolean contains(Point2D p)
          测试指定的 Point2D 是否在 Shape 的边界内。
 boolean contains(Rectangle2D r)
          测试 Shape 内部是否完全包含指定的 Rectangle2D
 Rectangle getBounds()
          返回一个完全包围 Shape 的整型 Rectangle
abstract  Point2D getCtrlPt()
          返回控制点。
abstract  double getCtrlX()
          以 double 精度返回控制点的 X 坐标。
abstract  double getCtrlY()
          以 double 精度返回控制点的 Y 坐标。
 double getFlatness()
          返回此 QuadCurve2D 的平面度(或者说从控制点到连接端点的线的最大距离)。
static double getFlatness(double[] coords, int offset)
          返回由控制点(存储在指示数组中的指示索引处)指定的二次曲线平面度(或者说从控制点到连接端点的线的最大距离)。
static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
          返回由指示控制点指定的二次曲线平面度(或者说从控制点到连接端点的线的最大距离)。
 double getFlatnessSq()
          返回此 QuadCurve2D 的平面度(或者说从控制点到连接端点的线的最大距离)的平方。
static double getFlatnessSq(double[] coords, int offset)
          返回由控制点(存储在指示数组中的指示索引处)指定的二次曲线平面度(或者说从控制点到连接端点的线的最大距离)的平方。
static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
          返回由指示控制点指定的二次曲线平面度(或者说从控制点到连接端点的线的最大距离)的平方。
abstract  Point2D getP1()
          返回起始点。
abstract  Point2D getP2()
          返回结束点。
 PathIterator getPathIterator(AffineTransform at)
          返回定义此 QuadCurve2D 的形状边界的迭代对象。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          返回定义此 QuadCurve2D 的变平形状边界的迭代对象。
abstract  double getX1()
          以 double 精度返回起始点的 X 坐标。
abstract  double getX2()
          以 double 精度返回结束点的 X 坐标。
abstract  double getY1()
          以 double 精度返回起始点的 Y 坐标。
abstract  double getY2()
          以 double 精度返回结束点的 Y 坐标。
 boolean intersects(double x, double y, double w, double h)
          测试 Shape 内部是否与指定矩形区域的内部相交。
 boolean intersects(Rectangle2D r)
          测试 Shape 内部是否与指定 Rectangle2D 内部相交。
 void setCurve(double[] coords, int offset)
          将此 QuadCurve2D 端点和控制点的位置设置为指定数组中指定偏移量处的 double 坐标。
abstract  void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
          将此曲线端点和控制点的位置设置为指定的 double 坐标。
 void setCurve(Point2D[] pts, int offset)
          将此 QuadCurve2D 端点和控制点的位置设置为指定数组中指定偏移量处 Point2D 对象的坐标。
 void setCurve(Point2D p1, Point2D cp, Point2D p2)
          将此 QuadCurve2D 端点和控制点的位置设置为指定的 Point2D 坐标。
 void setCurve(QuadCurve2D c)
          将此 QuadCurve2D 端点和控制点的位置设置为与指定的 QuadCurve2D 相同。
static int solveQuadratic(double[] eqn)
          解系数位于 eqn 数组中的二次曲线,并将非复数的根放回该数组,同时返回根数。
static int solveQuadratic(double[] eqn, double[] res)
          解系数位于 eqn 数组中的二次曲线,并将非复数的根放入 res 数组,同时返回根数。
static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
          细分由存储在 src 数组 srcoff 到 (srcoff + 5) 索引处的坐标指定的二次曲线,并将得到的两个细分曲线存储到所得数组的相应索引中。
 void subdivide(QuadCurve2D left, QuadCurve2D right)
          细分此 QuadCurve2D 并将得到的两个细分曲线存储到 leftright 曲线参数中。
static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
          细分由 src 参数指定的二次曲线并将得到的两个细分曲线存储到 leftright 曲线参数中。
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 java.awt.Shape 继承的方法
getBounds2D
 

构造方法详细信息

QuadCurve2D

protected QuadCurve2D()
这是一个不可直接实例化的抽象类。特定于类型的实现子类可用于实例化,并提供用于存储满足以下各种存取方法所需信息的多种格式。

从以下版本开始:
1.2
另请参见:
QuadCurve2D.Float, QuadCurve2D.Double
方法详细信息

getX1

public abstract double getX1()
double 精度返回起始点的 X 坐标。

返回:
起始点的 X 坐标。
从以下版本开始:
1.2

getY1

public abstract double getY1()
double 精度返回起始点的 Y 坐标。

返回:
起始点的 Y 坐标。
从以下版本开始:
1.2

getP1

public abstract Point2D getP1()
返回起始点。

返回:
作为此 QuadCurve2D 起始点的 Point2D
从以下版本开始:
1.2

getCtrlX

public abstract double getCtrlX()
double 精度返回控制点的 X 坐标。

返回:
控制点的 X 坐标。
从以下版本开始:
1.2

getCtrlY

public abstract double getCtrlY()
double 精度返回控制点的 Y 坐标。

返回:
控制点的 Y 坐标。
从以下版本开始:
1.2

getCtrlPt

public abstract Point2D getCtrlPt()
返回控制点。

返回:
作为此 Point2D 控制点的 Point2D
从以下版本开始:
1.2

getX2

public abstract double getX2()
double 精度返回结束点的 X 坐标。

返回:
结束点的 X 坐标。
从以下版本开始:
1.2

getY2

public abstract double getY2()
double 精度返回结束点的 Y 坐标。

返回:
结束点的 Y 坐标。
从以下版本开始:
1.2

getP2

public abstract Point2D getP2()
返回结束点。

返回:
作为 Point2D 结束点的 Point 对象。
从以下版本开始:
1.2

setCurve

public abstract void setCurve(double x1,
                              double y1,
                              double ctrlx,
                              double ctrly,
                              double x2,
                              double y2)
将此曲线端点和控制点的位置设置为指定的 double 坐标。

参数:
x1 - 起始点的 X 坐标
y1 - 起始点的 Y 坐标
ctrlx - 控制点的 X 坐标
ctrly - 控制点的 Y 坐标
x2 - 结束点的 X 坐标
y2 - 结束点的 Y 坐标
从以下版本开始:
1.2

setCurve

public void setCurve(double[] coords,
                     int offset)
将此 QuadCurve2D 端点和控制点的位置设置为指定数组中指定偏移量处的 double 坐标。

参数:
coords - 包含坐标值的数组
offset - 数组中的索引,从此处开始获取坐标值并将其赋给此 QuadCurve2D
从以下版本开始:
1.2

setCurve

public void setCurve(Point2D p1,
                     Point2D cp,
                     Point2D p2)
将此 QuadCurve2D 端点和控制点的位置设置为指定的 Point2D 坐标。

参数:
p1 - 起始点
cp - 控制点
p2 - 结束点
从以下版本开始:
1.2

setCurve

public void setCurve(Point2D[] pts,
                     int offset)
将此 QuadCurve2D 端点和控制点的位置设置为指定数组中指定偏移量处 Point2D 对象的坐标。

参数:
pts - 包含定义坐标值的 Point2D 的数组
offset - pts 中的索引,从此处开始获取坐标值并将其赋给此 QuadCurve2D
从以下版本开始:
1.2

setCurve

public void setCurve(QuadCurve2D c)
将此 QuadCurve2D 端点和控制点的位置设置为与指定的 QuadCurve2D 相同。

参数:
c - 指定的 QuadCurve2D
从以下版本开始:
1.2

getFlatnessSq

public static double getFlatnessSq(double x1,
                                   double y1,
                                   double ctrlx,
                                   double ctrly,
                                   double x2,
                                   double y2)
返回由指示控制点指定的二次曲线平面度(或者说从控制点到连接端点的线的最大距离)的平方。

参数:
x1 - 起始点的 X 坐标
y1 - 起始点的 Y 坐标
ctrlx - 控制点的 X 坐标
ctrly - 控制点的 Y 坐标
x2 - 结束点的 X 坐标
y2 - 结束点的 Y 坐标
返回:
由指定坐标定义的二次曲线平面度的平方。
从以下版本开始:
1.2

getFlatness

public static double getFlatness(double x1,
                                 double y1,
                                 double ctrlx,
                                 double ctrly,
                                 double x2,
                                 double y2)
返回由指示控制点指定的二次曲线平面度(或者说从控制点到连接端点的线的最大距离)。

参数:
x1 - 起始点的 X 坐标
y1 - 起始点的 Y 坐标
ctrlx - 控制点的 X 坐标
ctrly - 控制点的 Y 坐标
x2 - 结束点的 X 坐标
y2 - 结束点的 Y 坐标
返回:
由指定坐标定义的二次曲线平面度
从以下版本开始:
1.2

getFlatnessSq

public static double getFlatnessSq(double[] coords,
                                   int offset)
返回由控制点(存储在指示数组中的指示索引处)指定的二次曲线平面度(或者说从控制点到连接端点的线的最大距离)的平方。

参数:
coords - 包含坐标值的数组
offset - coords 中的索引,从此处开始从数组中获取值
返回:
由指定数组指定索引处的值定义的二次曲线平面度。
从以下版本开始:
1.2

getFlatness

public static double getFlatness(double[] coords,
                                 int offset)
返回由控制点(存储在指示数组中的指示索引处)指定的二次曲线平面度(或者说从控制点到连接端点的线的最大距离)。

参数:
coords - 包含坐标值的数组
offset - coords 中的索引,从此处开始获取坐标值
返回:
由指定数组中指定偏移量定义的二次曲线平面度。
从以下版本开始:
1.2

getFlatnessSq

public double getFlatnessSq()
返回此 QuadCurve2D 的平面度(或者说从控制点到连接端点的线的最大距离)的平方。

返回:
QuadCurve2D 平面度的平方。
从以下版本开始:
1.2

getFlatness

public double getFlatness()
返回此 QuadCurve2D 的平面度(或者说从控制点到连接端点的线的最大距离)。

返回:
QuadCurve2D 的平面度。
从以下版本开始:
1.2

subdivide

public void subdivide(QuadCurve2D left,
                      QuadCurve2D right)
细分此 QuadCurve2D 并将得到的两个细分曲线存储到 leftright 曲线参数中。leftright 两个对象的一个(或两个)可以与 QuadCurve2D 对象相同,也可以为 null

参数:
left - 用于存储左边一半(或第一半)细分曲线的 QuadCurve2D 对象
right - 用于存储右边一半(或第二半)细分曲线的 QuadCurve2D 对象
从以下版本开始:
1.2

subdivide

public static void subdivide(QuadCurve2D src,
                             QuadCurve2D left,
                             QuadCurve2D right)
细分由 src 参数指定的二次曲线并将得到的两个细分曲线存储到 leftright 曲线参数中。leftright 两个对象的任何一个或两者都可以与 src 对象相同,也可以为 null

参数:
src - 要细分的二次曲线
left - 用于存储左边一半(或第一半)细分曲线的 QuadCurve2D 对象
right - 用于存储右边一半(或第二半)细分曲线的 QuadCurve2D 对象
从以下版本开始:
1.2

subdivide

public static void subdivide(double[] src,
                             int srcoff,
                             double[] left,
                             int leftoff,
                             double[] right,
                             int rightoff)
细分由存储在 src 数组 srcoff 到 (srcoff + 5) 索引处的坐标指定的二次曲线,并将得到的两个细分曲线存储到所得数组的相应索引中。leftright 数组中的一个(或两个)可以为 null,也可以为到与 src 相同的数组和偏移量的引用。注意,第一个细分曲线的最后一点就是第二个细分曲线的第一点。因此,可以为 leftright 传递相同的数组,并使用偏移量(如 rightoff 等于 (leftoff + 4),以避免为此公共点分配额外的存储区。

参数:
src - 保存源曲线坐标的数组
srcoff - 6 个源坐标的开头在数组中的偏移量
left - 存储第一半细分曲线坐标的数组
leftoff - 6 个左坐标的开头在数组中的偏移量
right - 存储第二半细分曲线坐标的数组
rightoff - 6 个右坐标的开头在数组中的偏移量
从以下版本开始:
1.2

solveQuadratic

public static int solveQuadratic(double[] eqn)
解系数位于 eqn 数组中的二次曲线,并将非复数的根放回该数组,同时返回根数。用以下方程表示二次曲线的解:
     eqn = {C, B, A};
     ax^2 + bx + c = 0
 
返回值 -1 用于区分常数方程(可以始终为 0 或永远不为 0)与不包含任何零的方程。

参数:
eqn - 包含二次曲线系数的数组
返回:
根数;如果方程是常数方程,则返回 -1
从以下版本开始:
1.2

solveQuadratic

public static int solveQuadratic(double[] eqn,
                                 double[] res)
解系数位于 eqn 数组中的二次曲线,并将非复数的根放入 res 数组,同时返回根数。用以下方程表示二次曲线的解:
     eqn = {C, B, A};
     ax^2 + bx + c = 0
 
返回值 -1 用于区分常数方程(可以始终为 0 或永远不为 0)与不包含任何零的方程。

参数:
eqn - 用于解二次曲线方程的指定系数数组
res - 包含求解二次曲线方程所得非复数根的数组
返回:
根数;如果方程是常数方程,则返回 -1
从以下版本开始:
1.3

contains

public boolean contains(double x,
                        double y)
测试指定坐标是否在 Shape 的边界内。

指定者:
接口 Shape 中的 contains
参数:
x - 要测试的指定的 X 坐标
y - 要测试的指定的 Y 坐标
返回:
如果指定坐标在 Shape 边界内,则返回 true;否则返回 false
从以下版本开始:
1.2

contains

public boolean contains(Point2D p)
测试指定的 Point2D 是否在 Shape 的边界内。

指定者:
接口 Shape 中的 contains
参数:
p - 要测试的指定的 Point2D
返回:
如果指定的 Point2DShape 边界内,则返回 true;否则返回 false
从以下版本开始:
1.2

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
测试 Shape 内部是否与指定矩形区域的内部相交。如果任何一个点既包含在 Shape 内,又包含在指定矩形区域内,则认为矩形区域与 Shape 相交。

在下列情况下,Shape.intersects() 方法允许 Shape 实现谨慎地返回 true

这意味着对于某些 Shape,即使矩形区域没有与该 Shape 相交,此方法也可能返回 true。如果需要更精确的答案,由于 Area 类比大多数 Shape 对象更为准确地计算几何相交,因此可以使用该类。

指定者:
接口 Shape 中的 intersects
参数:
x - 指定矩形区域左上角的 X 坐标
y - 指定矩形区域左上角的 Y 坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
如果 Shape 的内部区域与矩形的内部区域相交,或者相交的可能性很大且执行计算的代价太高,则返回 true;否则返回 false
从以下版本开始:
1.2
另请参见:
Area

intersects

public boolean intersects(Rectangle2D r)
测试 Shape 内部是否与指定 Rectangle2D 内部相交。在下列情况下,Shape.intersects() 方法允许 Shape 实现谨慎地返回 true 这意味着对于某些 Shape,即使 Rectangle2D 没有与该 Shape 相交,此方法也可能返回 true。如果需要更精确的答案,由于 Area 类比大多数 Shape 对象更为准确地计算几何相交,因此可以使用该类。

指定者:
接口 Shape 中的 intersects
参数:
r - 指定的 Rectangle2D
返回:
如果 Shape 内部与指定 Rectangle2D 内部相交,或者相交的可能性很大且执行计算的代价太高,则返回 true;否则返回 false
从以下版本开始:
1.2
另请参见:
Shape.intersects(double, double, double, double)

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
测试 Shape 内部是否完全包含指定矩形区域。矩形区域内的所有坐标都必须位于 Shape 中,才可以认为整个矩形区域包含在 Shape中。

在下列情况下,Shape.contains() 方法允许 Shape 实现谨慎地返回 false

这意味着对于某些 Shape,即使 Shape 包含矩形区域,此方法也可能返回 false。如果需要更精确的答案,由于 Area 类比大多数 Shape 对象更为准确地执行几何计算,因此可以使用该类。

指定者:
接口 Shape 中的 contains
参数:
x - 指定矩形区域左上角的 X 坐标
y - 指定矩形区域左上角的 Y 坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
如果 Shape 内部完全包含指定矩形区域,则返回 true;否则,如果 Shape 包含矩形区域、intersects 方法返回 true 且执行包含计算代价太高,则返回 false
从以下版本开始:
1.2
另请参见:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
测试 Shape 内部是否完全包含指定的 Rectangle2D。在下列情况下,Shape.contains() 方法允许 Shape 实现谨慎地返回 false 这意味着对于某些 Shape,即使 Shape 包含 Rectangle2D,此方法也可能返回 false。如果需要更精确的答案,由于 Area 类比大多数 Shape 对象更为准确地执行几何计算,因此可以使用该类。

指定者:
接口 Shape 中的 contains
参数:
r - 指定的 Rectangle2D
返回:
如果 Shape 内部完全包含 Rectangle2D,则返回 true;否则,如果 Shape 包含 Rectangle2Dintersects 方法返回 true 且执行包含计算代价太高,则返回 false
从以下版本开始:
1.2
另请参见:
Shape.contains(double, double, double, double)

getBounds

public Rectangle getBounds()
返回一个完全包围 Shape 的整型 Rectangle。注意,不保证返回的 Rectangle 是包围 Shape 的最小边界框,只保证 Shape 完全位于指示的 Rectangle 中。如果 Shape 超出了整数数据类型的有效范围,则返回的 Rectangle 也可能不完全包围 ShapegetBounds2D 方法由于在表示形式上具有更大的灵活性,所以通常返回更紧密的边界框。

指定者:
接口 Shape 中的 getBounds
返回:
完全包围 Shape 的整型 Rectangle
从以下版本开始:
1.2
另请参见:
Shape.getBounds2D()

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回定义此 QuadCurve2D 的形状边界的迭代对象。此类的迭代器不是多线程安全的,这意味着此 QuadCurve2D 类不保证对此 QuadCurve2D 对象几何形状所作的修改不会影响该几何形状中正在进行的迭代。

指定者:
接口 Shape 中的 getPathIterator
参数:
at - 要应用于形状边界的可选的 AffineTransform
返回:
定义形状边界的 PathIterator 对象。
从以下版本开始:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
返回定义此 QuadCurve2D 的变平形状边界的迭代对象。此类的迭代器不是多线程安全的,这意味着此 QuadCurve2D 类不保证对此 QuadCurve2D 对象几何形状所作的修改不会影响该几何形状中正在进行的迭代。

指定者:
接口 Shape 中的 getPathIterator
参数:
at - 要应用于形状边界的可选的 AffineTransform
flatness - 在连接端点的直线取代曲线前,细分曲线的控制端点可以相对于连接此曲线端点的线的最大距离。
返回:
定义变平的形状边界的 PathIterator 对象。
从以下版本开始:
1.2

clone

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

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

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策