模块  java.desktop
软件包  java.awt.geom

Class QuadCurve2D

  • 实现的所有接口
    ShapeCloneable
    已知直接子类:
    QuadCurve2D.DoubleQuadCurve2D.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的边界内,如 definition of insideness所述
      boolean contains​(double x, double y, double w, double h)
      测试 Shape的内部 Shape完全包含指定的矩形区域。
      boolean contains​(Point2D p)
      测试指定Point2D是的边界内Shape ,如所描述的definition of insideness
      boolean contains​(Rectangle2D r)
      测试 Shape的内部 Shape完全包含指定的 Rectangle2D
      Rectangle getBounds()
      返回一个整数Rectangle完全包围Shape
      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的展平形状的 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其系数在 eqn数组中的二次方,并将非复数根返回到同一个数组中,返回根数。
      static int solveQuadratic​(double[] eqn, double[] res)
      eqn其系数在 eqn数组中的二次 eqn ,并将非复数根置于 res数组中,返回根数。
      static void subdivide​(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
      将由存储在 src数组中的坐标指定的二次曲线细分为索引 srcoffsrcoff + 5,并将得到的两条细分曲线存储到相应索引处的两个结果数组中。
      void subdivide​(QuadCurve2D left, QuadCurve2D right)
      细分此 QuadCurve2D并将得到的两条细分曲线存储到 leftright曲线参数中。
      static void subdivide​(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
      细分由 src参数指定的二次曲线,并将得到的两条细分曲线存储到 leftright曲线参数中。
    • 构造方法详细信息

      • QuadCurve2D

        protected QuadCurve2D()
        这是一个无法直接实例化的抽象类。 特定于类型的实现子类可用于实例化,并提供许多格式用于存储满足以下各种访问器方法所必需的信息。
        从以下版本开始:
        1.2
        另请参见:
        QuadCurve2D.FloatQuadCurve2D.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()
        返回起点。
        结果
        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的索引,从中开始从数组中获取值
        结果
        二次曲线的平坦度,由指定索引处指定数组中的值定义。
        从以下版本开始:
        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对象中的任何一个或两个都可以与此QuadCurve2Dnull相同。
        参数
        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数组中的坐标指定的二次曲线细分为索引srcoffsrcoff + 5,并将得到的两条细分曲线存储到相应索引处的两个结果数组中。 leftright阵列中的任何一个或两者可以是null或对src阵列的相同阵列和偏移的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数组中的二次方,并将非复数根返回到同一数组中,返回根数。 二次求解由以下等式表示:
          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所述
        Specified by:
        contains接口 Shape
        参数
        x - 要测试的指定X坐标
        y - 要测试的指定Y坐标
        结果
        true如果指定的坐标在Shape边界内; 否则为false
        从以下版本开始:
        1.2
      • contains

        public boolean contains​(Point2D p)
        测试指定Point2D是的边界内Shape ,如所描述的definition of insideness
        Specified by:
        contains ,界面 Shape
        参数
        p - 要测试的指定 Point2D
        结果
        true如果指定Point2D是的边界内Shape ; 否则为false
        从以下版本开始:
        1.2
      • intersects

        public boolean intersects​(double x,
                                  double y,
                                  double w,
                                  double h)
        测试Shape的内部是否与指定矩形区域的内部相交。 矩形区域被认为是交叉的Shape如果任何点被包含在双方的内部Shape和指定的矩形区域。

        Shape.intersects()方法允许Shape实现在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
        • Rectangle2DShape相交的概率很高,但是
        • 精确确定这个交叉点的计算非常昂贵。
        这意味着对于某些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实现在Shape情况下保守地返回false

        • intersect方法返回true
        • 用于确定Shape是否完全包含矩形区域的计算非常昂贵。
        这意味着对于某些Shapes即使Shape包含矩形区域,此方法也可能返回false Area类比大多数Shape对象执行更精确的几何计算,因此如果需要更精确的答案,则可以使用它。
        Specified by:
        contains接口 Shape
        参数
        x - 指定矩形区域左上角的X坐标
        y - 指定矩形区域左上角的Y坐标
        w - 指定矩形区域的宽度
        h - 指定矩形区域的高度
        结果
        true如果内部Shape完全包含指定矩形区域; false否则或者,如果Shape包含矩形区域并且intersects方法返回true并且包含计算将太昂贵而无法执行。
        从以下版本开始:
        1.2
        另请参见:
        AreaShape.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可能会导致4665961458035定义轮廓上的shape可能不被视为包含在返回的bounds对象中,但仅限于原始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类不保证对此QuadCurve2D对象的几何的修改不会影响已在进行的该几何的任何迭代。
        Specified by:
        getPathIterator ,界面 Shape
        参数
        at - 可选的 AffineTransform应用于形状的边界
        flatness - 在连接端点的直线替换此曲线之前,细分曲线的控制点相对于连接此曲线端点的直线的最大距离。
        结果
        PathIterator对象,用于定义形状的展平边界。
        从以下版本开始:
        1.2
      • clone

        public Object clone()
        创建与此对象具有相同类并具有相同内容的新对象。
        重写:
        cloneObject
        结果
        这个实例的克隆。
        异常
        OutOfMemoryError - 如果没有足够的内存。
        从以下版本开始:
        1.2
        另请参见:
        Cloneable