- 已知子类:
QuadCurve2D.Double,QuadCurve2D.Float
QuadCurve2D 类定义了 (x,y) 坐标空间中的二次参数曲线段。
此类只是存储二维二次曲线段的所有对象的抽象超类。坐标的实际存储表示留给子类。
- 自从:
- 1.2
-
内部类总结
内部类修饰符和类型类描述static class用double坐标指定的二次参数曲线段。static class用float坐标指定的二次参数曲线段。 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述clone()创建一个与此对象具有相同类和相同内容的新对象。booleancontains(double x, double y) 测试指定坐标是否在Shape的边界内,如 definition of insideness 所述。booleancontains(double x, double y, double w, double h) 测试Shape的内部是否完全包含指定的矩形区域。booleanboolean测试Shape的内部是否完全包含指定的Rectangle2D。返回一个整数Rectangle完全包围Shape。返回Shape比getBounds方法更高精度和更准确的边界框。abstract Point2D返回控制点。abstract doublegetCtrlX()以double精度返回控制点的 X 坐标。abstract doublegetCtrlY()以double精度返回控制点的 Y 坐标。double返回此QuadCurve2D的平面度或控制点与端点连接线的最大距离。static doublegetFlatness(double[] coords, int offset) 返回由存储在指定数组中指定索引处的控制点指定的二次曲线的平坦度或控制点与连接端点的直线的最大距离。static doublegetFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) 返回由指定控制点指定的二次曲线的平坦度或控制点与端点连接线的最大距离。double返回此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()返回终点。返回定义此QuadCurve2D形状边界的迭代对象。getPathIterator(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的内部是否与指定矩形区域的内部相交。boolean测试Shape的内部是否与指定的Rectangle2D的内部相交。voidsetCurve(double[] coords, int offset) 将此QuadCurve2D的终点和控制点的位置设置为指定数组中指定偏移量处的double坐标。abstract voidsetCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) 将此曲线的终点和控制点的位置设置为指定的double坐标。void将此QuadCurve2D的端点和控制点的位置设置为指定数组中指定偏移处的Point2D对象的坐标。void将此QuadCurve2D的终点和控制点的位置设置为指定的Point2D坐标。void将此QuadCurve2D的端点和控制点的位置设置为与指定的QuadCurve2D中的相同。static intsolveQuadratic(double[] eqn) 求解系数在eqn数组中的二次方程并将非复数根放回同一数组,返回根数。static intsolveQuadratic(double[] eqn, double[] res) 求解系数在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曲线参数中。
-
构造方法详细信息
-
QuadCurve2D
protected QuadCurve2D()这是一个不能直接实例化的抽象类。类型特定的实现子类可用于实例化,并提供多种格式来存储满足以下各种访问器方法所需的信息。- 自从:
- 1.2
- 参见:
-
-
方法详情
-
getX1
public abstract double getX1()以double精度返回起点的 X 坐标。- 返回:
- 起点的 X 坐标。
- 自从:
- 1.2
-
getY1
public abstract double getY1()以double精度返回起点的 Y 坐标。- 返回:
- 起点的 Y 坐标。
- 自从:
- 1.2
-
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
返回控制点。- 返回:
-
a
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
返回终点。- 返回:
-
一个
Point对象,它是这个Point2D的终点。 - 自从:
- 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
将此QuadCurve2D的终点和控制点的位置设置为指定的Point2D坐标。- 参数:
p1- 起点cp- 控制点p2- 终点- 自从:
- 1.2
-
setCurve
将此QuadCurve2D的端点和控制点的位置设置为指定数组中指定偏移处的Point2D对象的坐标。- 参数:
pts- 包含定义坐标值的Point2D的数组offset-pts的索引,从中开始获取坐标值并将它们分配给此QuadCurve2D- 自从:
- 1.2
-
setCurve
将此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
细分这个QuadCurve2D并将得到的两条细分曲线存储到left和right曲线参数中。left和right对象之一或两者可以与此QuadCurve2D或null相同。- 参数:
left-QuadCurve2D对象,用于存储细分曲线的左半部分或前半部分right-QuadCurve2D对象,用于存储细分曲线的右半部分或后半部分- 自从:
- 1.2
-
subdivide
细分由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- 左边 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的边界内,如 definition of insideness 所述。 -
contains
-
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对象更准确的几何交集计算,因此如果需要更精确的答案可以使用。- 指定者:
intersects在接口Shape中- 参数:
x- 指定矩形区域左上角的X坐标y- 指定矩形区域左上角的Y坐标w- 指定矩形区域的宽度h- 指定矩形区域的高度- 返回:
true如果Shape的内部与矩形区域的内部相交,或者两者极有可能相交,并且相交计算的执行成本太高;false否则。- 自从:
- 1.2
- 参见:
- 矩形区域和
-
intersects
测试Shape的内部是否与指定的Rectangle2D的内部相交。Shape.intersects()方法允许Shape实现在以下情况下保守地返回true:Rectangle2D和Shape相交的可能性很高,但是- 准确确定该交叉点的计算非常昂贵。
Shapes此方法可能返回true即使Rectangle2D不与Shape相交。Area类执行比大多数Shape对象更准确的几何交集计算,因此如果需要更精确的答案可以使用。- 指定者:
intersects在接口Shape中- 参数:
r- 指定的Rectangle2D- 返回:
true如果Shape的内部与指定的Rectangle2D的内部相交,或者两者极有可能相交,并且相交计算的执行成本太高;false否则。- 自从:
- 1.2
- 参见:
-
contains
public boolean contains(double x, double y, double w, double h) 测试Shape的内部是否完全包含指定的矩形区域。位于矩形区域内的所有坐标必须位于Shape内,因为整个矩形区域都被视为包含在Shape内。Shape.contains()方法允许Shape实现在以下情况下保守地返回false:intersect方法返回true和- 确定
Shape是否完全包含矩形区域的计算非常昂贵。
Shapes此方法可能返回false即使Shape包含矩形区域。Area类执行比大多数Shape对象更精确的几何计算,因此可以在需要更精确的答案时使用。 -
contains
测试Shape的内部是否完全包含指定的Rectangle2D。Shape.contains()方法允许Shape实现在以下情况下保守地返回false:intersect方法返回true和- 确定
Shape是否完全包含Rectangle2D的计算非常昂贵。
Shapes此方法可能返回false即使Shape包含Rectangle2D。Area类执行比大多数Shape对象更精确的几何计算,因此可以在需要更精确的答案时使用。 -
getBounds2D
返回Shape比getBounds方法更高精度和更准确的边界框。请注意,不能保证返回的Rectangle2D是包围Shape的最小边界框,只能保证Shape完全位于指示的Rectangle2D内。此方法返回的边界框通常比getBounds方法返回的边界框更紧密,并且不会因溢出问题而失败,因为返回值可以是使用双精度值存储尺寸的Rectangle2D的实例。请注意,definition of insideness 可能导致
shape定义轮廓上的点可能不被视为包含在返回的bounds对象中,但仅在这些点也不被视为包含在原始shape中的情况下。如果根据
contains(point)方法point在shape内部,那么根据bounds的contains(point)方法,它必须在返回的Rectangle2D边界对象内部。具体来说:shape.contains(p)需要bounds.contains(p)如果
point不在shape内,那么它可能仍包含在bounds对象中:bounds.contains(p)并不意味着shape.contains(p)- 指定者:
getBounds2D在接口Shape中- 返回:
Rectangle2D的一个实例,它是Shape的高精度边界框。- 自从:
- 1.2
- 参见:
-
getBounds
返回一个整数Rectangle完全包围Shape。请注意,不能保证返回的Rectangle是包围Shape的最小边界框,只能保证Shape完全位于指示的Rectangle内。如果Shape溢出整数数据类型的有限范围,则返回的Rectangle也可能无法完全包围Shape。getBounds2D方法通常会返回更紧密的边界框,因为它在表示方掩码有更大的灵活性。请注意,definition of insideness 可能导致
shape定义轮廓上的点可能不被视为包含在返回的bounds对象中,但仅在这些点也不被视为包含在原始shape中的情况下。如果根据
contains(point)方法point在shape内部,那么根据bounds的contains(point)方法,它必须在返回的Rectangle边界对象内部。具体来说:shape.contains(x,y)需要bounds.contains(x,y)如果
point不在shape内,那么它可能仍包含在bounds对象中:bounds.contains(x,y)并不意味着shape.contains(x,y) -
getPathIterator
返回定义此QuadCurve2D形状边界的迭代对象。此类的迭代器不是多线程安全的,这意味着此QuadCurve2D类不保证对此QuadCurve2D对象的几何图形的修改不会影响已在进行中的该几何图形的任何迭代。- 指定者:
getPathIterator在接口Shape中- 参数:
at- 可选的AffineTransform应用于形状边界- 返回:
-
定义形状边界的
PathIterator对象。 - 自从:
- 1.2
-
getPathIterator
返回定义此QuadCurve2D的展平形状边界的迭代对象。此类的迭代器不是多线程安全的,这意味着此QuadCurve2D类不保证对此QuadCurve2D对象的几何图形的修改不会影响已在进行中的该几何图形的任何迭代。- 指定者:
getPathIterator在接口Shape中- 参数:
at- 可选的AffineTransform应用于形状的边界flatness- 在这条曲线被连接端点的直线取代之前,细分曲线的控制点相对于连接该曲线端点的直线的最大距离。- 返回:
-
一个
PathIterator对象,它定义了形状的展平边界。 - 自从:
- 1.2
-
clone
创建一个与此对象具有相同类和相同内容的新对象。- 重写:
clone在类Object中- 返回:
- 此实例的克隆。
- 抛出:
OutOfMemoryError- 如果内存不足。- 自从:
- 1.2
- 参见:
-