- java.lang.Object
-
- java.awt.geom.QuadCurve2D
-
- 已知直接子类:
-
QuadCurve2D.Double,QuadCurve2D.Float
public abstract class QuadCurve2D extends Object implements Shape, Cloneable
QuadCurve2D类定义了(x,y)坐标空间中的二次参数曲线段。该类只是存储2D二次曲线段的所有对象的抽象超类。 坐标的实际存储表示留给子类。
- 从以下版本开始:
- 1.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static classQuadCurve2D.Double用double坐标指定的二次参数曲线段。static classQuadCurve2D.Float用float协调指定的二次参数曲线段。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedQuadCurve2D()这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 Objectclone()创建与该对象相同的类和新内容相同的新对象。booleancontains(double x, double y)测试指定的坐标是否在Shape的边界内,如 definition of insideness所述 。booleancontains(double x, double y, double w, double h)测试Shape的内部Shape完全包含指定的矩形区域。booleancontains(Point2D p)测试指定Point2D是的边界内Shape,如所描述的definition of insideness 。booleancontains(Rectangle2D r)测试Shape的内部Shape全部包含指定的Rectangle2D。RectanglegetBounds()返回一个整数Rectangle完全包围Shape。abstract Point2DgetCtrlPt()返回控制点。abstract doublegetCtrlX()以double精度返回控制点的X坐标。abstract doublegetCtrlY()以double精度返回控制点的Y坐标。doublegetFlatness()返回QuadCurve2D的控制点与连接终点的线的平坦度或最大距离。static doublegetFlatness(double[] coords, int offset)返回控制点与连接终点的线的平坦度或最大距离,由指定的数组中存储在指示索引处的控制点指定的二次曲线。static doublegetFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)返回由指示的控制点指定的二次曲线的平滑度或控制点与连接端点的线的最大距离。doublegetFlatnessSq()返回这个QuadCurve2D的平直度的平方或控制点与连接端点的线的最大距离。static doublegetFlatnessSq(double[] coords, int offset)返回由指示的数组中存储的指示索引处存储的控制点指定的二次曲线的平坦度或控制点与连接终点的线的最大距离。static doublegetFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)返回由指示的控制点指定的二次曲线的平坦度或控制点与连接终点的线的最大距离。abstract Point2DgetP1()返回起始点。abstract Point2DgetP2()返回终点。PathIteratorgetPathIterator(AffineTransform at)返回定义QuadCurve2D形状边界的迭代对象。PathIteratorgetPathIterator(AffineTransform at, double flatness)返回定义此QuadCurve2D的展平形状边界的迭代对象。abstract doublegetX1()以double的精度返回起始点的X坐标。abstract doublegetX2()以double精度返回终点的X坐标。abstract doublegetY1()以double精度返回起始点的Y坐标。abstract doublegetY2()以double精度返回终点的Y坐标。booleanintersects(double x, double y, double w, double h)测试Shape的内部是否与指定矩形区域的内部相交。booleanintersects(Rectangle2D r)测试Shape的内部是否与指定的内部相交Rectangle2D。voidsetCurve(double[] coords, int offset)将该QuadCurve2D的终点和控制点的位置设置为指定数组中指定偏移量的double坐标。abstract voidsetCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)将该曲线的终点和控制点的位置设置为指定的double坐标。voidsetCurve(Point2D[] pts, int offset)将QuadCurve2D的终点和控制点的位置设置为指定数组中指定偏移量处的Point2D对象的坐标。voidsetCurve(Point2D p1, Point2D cp, Point2D p2)将此QuadCurve2D的终点和控制点的位置设置为指定的Point2D坐标。voidsetCurve(QuadCurve2D c)将此QuadCurve2D的终点和控制点的位置设置为与指定的QuadCurve2D。static intsolveQuadratic(double[] eqn)eqn其系数在eqn数组中,并将非复数根返回到同一个数组中,返回根数。static intsolveQuadratic(double[] eqn, double[] res)eqn其系数在eqn数组中的二次方,并将非复数根放入res数组中,返回根数。static voidsubdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)细分由存储在src阵列中的坐标指定的二次曲线,索引为srcoff至srcoff+ 5,并将生成的两个细分曲线存储在相应索引处的两个结果数组中。voidsubdivide(QuadCurve2D left, QuadCurve2D right)细分此QuadCurve2D,并将生成的两个细分曲线存储到left和right曲线参数中。static voidsubdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)细分由src参数指定的二次曲线,并将生成的两个细分曲线存储到left和right曲线参数中。-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface 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()
返回起始点的Y坐标在double精度。- 结果
- 起始点的Y坐标。
- 从以下版本开始:
- 1.2
-
getP1
public abstract Point2D getP1()
返回起始点。- 结果
-
一个
Point2D这是QuadCurve2D。 - 从以下版本开始:
- 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()
返回终点。- 结果
-
一个
Point对象,它是本的终点Point2D。 - 从以下版本开始:
- 1.2
-
setCurve
public abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)将该曲线的终点和控制点的位置设置为指定的double坐标。- 参数
-
x1-x1的X坐标 -
y1-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-x1的X坐标 -
y1-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-x1的X坐标 -
y1-y1的Y坐标 -
ctrlx- 控制点的X坐标 -
ctrly- 控制点的Y坐标 -
x2- 终点的X坐标 -
y2- 终点的Y坐标 - 结果
- 由指定坐标定义的二次曲线的平坦度。
- 从以下版本开始:
- 1.2
-
getFlatnessSq
public static double getFlatnessSq(double[] coords, int offset)返回由指示的数组中存储的指示索引处存储的控制点指定的二次曲线的平坦度或控制点与连接终点的线的最大距离。- 参数
-
coords- 包含坐标值的数组 -
offset- 索引到coords从coords开始从数组中获取值 - 结果
- 由指定数组中指定索引处的值定义的二次曲线的平坦度。
- 从以下版本开始:
- 1.2
-
getFlatness
public static double getFlatness(double[] coords, int offset)返回控制点与连接终点的线的平坦度或最大距离,由指定的数组中存储在指示索引处的控制点指定的二次曲线。- 参数
-
coords- 包含坐标值的数组 -
offset- 索引为coords,从中开始获取坐标值 - 结果
- 由指定的数组在指定的偏移量定义的二次曲线的平坦度。
- 从以下版本开始:
- 1.2
-
getFlatnessSq
public double getFlatnessSq()
返回QuadCurve2D的平坦度或控制点与连接终点的线的最大距离的QuadCurve2D。- 结果
-
该平方度的平方度这
QuadCurve2D。 - 从以下版本开始:
- 1.2
-
getFlatness
public double getFlatness()
返回QuadCurve2D度或控制点与连接端点的线的最大距离。- 结果
-
平坦度这
QuadCurve2D。 - 从以下版本开始:
- 1.2
-
subdivide
public void subdivide(QuadCurve2D left, QuadCurve2D right)
细分此QuadCurve2D,并将所得的两条细分曲线存储到left和right曲线参数中。left和right对象中的任何一个或两者可以与此QuadCurve2D或null相同。- 参数
-
left- 用于存储细分曲线的左半部分或上半部分的QuadCurve2D对象 -
right- 用于存储细分曲线的右半部分或后半部分的QuadCurve2D对象 - 从以下版本开始:
- 1.2
-
subdivide
public static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
细分由src参数指定的二次曲线,并将生成的两个细分曲线存储到left和right曲线参数中。left和right对象中的任一个或两者可以与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,并将生成的两个细分曲线存储在相应索引处的两个结果数组中。 所述的任一或两者left个right数组可以是null或同一数组的引用和作为偏移src阵列。 请注意,第一个细分曲线中的最后一个点与第二个细分曲线中的第一个点相同。 因此,可以通过left和right的相同阵列,并使用偏移量使得rightoff等于leftoff+ 4,以避免为该公共点分配额外的存储空间。- 参数
-
src- 保存源曲线坐标的数组 -
srcoff- 偏移到数组的开头的6个源坐标 -
left- 用于存储细分曲线前半部分坐标的数组 -
leftoff- 偏移到leftoff左坐标开头的数组 -
right- 用于存储细分曲线后半部分坐标的数组 -
rightoff- 偏移到数组的开头的6个正确的坐标 - 从以下版本开始:
- 1.2
-
solveQuadratic
public static int solveQuadratic(double[] eqn)
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其系数在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的边界内,如 definition of insideness所述 。
-
contains
public boolean contains(Point2D p)
测试指定Point2D是的边界内Shape,如所描述的definition of insideness 。
-
intersects
public boolean intersects(double x, double y, double w, double h)测试Shape的内部是否与指定矩形区域的内部相交。 如果任何点包含在Shape的内部和指定的矩形区域中,则矩形区域被认为与Shape相交。Shape.intersects()方法允许Shape实现保守返回true当:- 矩形区域和
Shape相交的概率很高,但是 - 准确地确定这个交叉点的计算是非常昂贵的。
Shapes这种方法也可能返回true即使矩形区域没有相交Shape。Area类比大多数Shape对象执行几何交集的更精确的计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
intersects接口Shape - 参数
-
x- 指定矩形区域左上角的X坐标 -
y- 指定矩形区域左上角的Y坐标 -
w- 指定矩形区域的宽度 -
h- 指定矩形区域的高度 - 结果
-
true如果Shape的内部和矩形区域的内部相交,或者两者都很可能相交,并且交叉点计算将太昂贵执行;false否则。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Area
- 矩形区域和
-
intersects
public boolean intersects(Rectangle2D r)
测试Shape的内部是否与指定的内部相交Rectangle2D。Shape.intersects()方法允许Shape实现保守返回true时:-
Rectangle2D和Shape相交的概率很高,但是 - 准确地确定这个交叉点的计算是非常昂贵的。
Shapes这个方法可能会返回true即使Rectangle2D不与Shape相交。Area类比大多数Shape对象执行更准确的几何交集计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
intersects在接口Shape - 参数
-
r- 指定的Rectangle2D - 结果
-
true如果Shape的内部和指定的Rectangle2D的内部相交,或者两者都很可能相交,并且交叉点计算将太昂贵执行;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。Shape.contains()方法允许Shape实现保守返回false当:-
intersect方法返回true和 - 确定
Shape是否完全包含矩形区域的计算是非常昂贵的。
Shapes这个方法可能会返回false即使Shape包含矩形区域。Area类执行比大多数Shape对象更准确的几何计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
contains在接口Shape - 参数
-
x- 指定矩形区域左上角的X坐标 -
y- 指定矩形区域左上角的Y坐标 -
w- 指定矩形区域的宽度 -
h- 指定矩形区域的高度 - 结果
-
true如果内部的Shape完全包含指定的矩形区域;false否则,或者如果Shape包含矩形区域,并且intersects方法返回true,并且遏制计算将太昂贵执行。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Area,Shape.intersects(double, double, double, double)
-
-
contains
public boolean contains(Rectangle2D r)
测试Shape的内部Shape完全包含指定的Rectangle2D。Shape.contains()方法允许Shape实现保守返回false当:-
intersect方法返回true和 - 计算确定
Shape是否完全包含Rectangle2D是非常昂贵的。
Shapes这种方法也可能返回false即使Shape包含Rectangle2D。Area类比大多数Shape对象执行更准确的几何计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
contains在接口Shape - 参数
-
r- 指定的Rectangle2D - 结果
-
true如果内部的Shape完全包含Rectangle2D;false否则或如果Shape包含Rectangle2D和intersects方法返回true并且包含计算将太昂贵执行。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.contains(double, double, double, double)
-
-
getBounds
public Rectangle getBounds()
返回一个整数Rectangle完全包围Shape。 请注意,不保证返回的Rectangle是封闭的最小边界框Shape,只表示Shape完全在指定的范围内Rectangle。 如果Shape溢出整数数据类型的有限范围,则返回的Rectangle也可能无法完全包围Shape。getBounds2D方法通常返回更严格的边界框,因为它具有更大的表示灵活性。请注意, definition of insideness可能导致在返回的
bounds对象中不包含shape定义轮廓上的点的情况,但仅在这些点也未被包含在原始shape。如果
point是内部shape根据contains(point)方法,那么它必须是内部返回Rectangle界限根据对象contains(point)所述的方法bounds。 特别:shape.contains(x,y)要求bounds.contains(x,y)如果一个
point不在shape,那么它可能仍然包含在bounds对象中:bounds.contains(x,y)并不表示shape.contains(x,y)- Specified by:
-
getBounds在接口Shape - 结果
-
整数
Rectangle完全包围了Shape。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.getBounds2D()
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at)
返回定义QuadCurve2D形状边界的迭代对象。 此类的迭代器不是多线程安全的,这意味着此QuadCurve2D类不保证对此QuadCurve2D对象的几何的修改不会影响已处理的该几何的任何迭代。- Specified by:
-
getPathIterator在接口Shape - 参数
-
at- 可选的AffineTransform适用于形状边界 - 结果
-
一个定义形状边界的
PathIterator对象。 - 从以下版本开始:
- 1.2
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
返回定义此QuadCurve2D的展平形状边界的迭代对象。 此类的迭代器不是多线程安全的,这意味着此QuadCurve2D类不保证对此QuadCurve2D对象的几何的修改不会影响已经在处理的该几何的任何迭代。- Specified by:
-
getPathIterator在接口Shape - 参数
-
at- 可选的AffineTransform适用于形状的边界 -
flatness- 分割曲线的控制点相对于连接该曲线的端点的线的最大距离,该曲线由连接端点的直线代替。 - 结果
-
一个
PathIterator对象,定义了形状的平坦边界。 - 从以下版本开始:
- 1.2
-
clone
public Object clone()
创建与该对象相同的类和新内容相同的新对象。- 重写:
-
clone在Object类 - 结果
- 这个实例的一个克隆。
- 异常
-
OutOfMemoryError- 如果没有足够的内存 - 从以下版本开始:
- 1.2
- 另请参见:
-
Cloneable
-
-