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

Class Rectangle2D

  • 实现的所有接口
    ShapeCloneable
    已知直接子类:
    RectangleRectangle2D.DoubleRectangle2D.Float

    public abstract class Rectangle2D
    extends RectangularShape
    Rectangle2D类描述了由位置(x,y)和维度(w x h)定义的矩形。

    此类只是存储2D矩形的所有对象的抽象超类。 坐标的实际存储表示留给子类。

    从以下版本开始:
    1.2
    • 字段详细信息

      • OUT_LEFT

        public static final int OUT_LEFT
        位掩码,指示某个点位于此 Rectangle2D的左侧。
        从以下版本开始:
        1.2
        另请参见:
        常数字段值
      • OUT_TOP

        public static final int OUT_TOP
        位掩码,指示某个点位于此 Rectangle2D
        从以下版本开始:
        1.2
        另请参见:
        常数字段值
      • OUT_RIGHT

        public static final int OUT_RIGHT
        位掩码,指示某个点位于此 Rectangle2D的右侧。
        从以下版本开始:
        1.2
        另请参见:
        常数字段值
      • OUT_BOTTOM

        public static final int OUT_BOTTOM
        位掩码,指示某个点位于此 Rectangle2D
        从以下版本开始:
        1.2
        另请参见:
        常数字段值
    • 构造方法详细信息

      • Rectangle2D

        protected Rectangle2D()
        这是一个无法直接实例化的抽象类。 特定于类型的实现子类可用于实例化,并提供许多格式用于存储满足以下各种访问器方法所必需的信息。
        从以下版本开始:
        1.2
        另请参见:
        Rectangle2D.FloatRectangle2D.DoubleRectangle
    • 方法详细信息

      • setRect

        public abstract void setRect​(double x,
                                     double y,
                                     double w,
                                     double h)
        将此 Rectangle2D的位置和大小设置为指定的 double值。
        参数
        x - 此 Rectangle2D左上角的X坐标
        y - 此 Rectangle2D左上角的Y坐标
        w - 这个宽度 Rectangle2D
        h - 这个高度 Rectangle2D
        从以下版本开始:
        1.2
      • setRect

        public void setRect​(Rectangle2D r)
        将此 Rectangle2D设置为与指定的 Rectangle2D相同。
        参数
        r - 指定的 Rectangle2D
        从以下版本开始:
        1.2
      • intersectsLine

        public boolean intersectsLine​(double x1,
                                      double y1,
                                      double x2,
                                      double y2)
        测试指定的线段是否与此 Rectangle2D的内部相交。
        参数
        x1 - 指定线段起点的X坐标
        y1 - 指定线段起点的Y坐标
        x2 - 指定线段的终点的X坐标
        y2 - 指定线段的终点的Y坐标
        结果
        true如果指定的线段与此Rectangle2D的内部相交; 否则为false
        从以下版本开始:
        1.2
      • intersectsLine

        public boolean intersectsLine​(Line2D l)
        测试指定的线段是否与此 Rectangle2D的内部相交。
        参数
        l - 指定Line2D以测试与此内部的Rectangle2D
        结果
        true若指定的Line2D与此Rectangle2D的内部相交; 否则为false
        从以下版本开始:
        1.2
      • outcode

        public abstract int outcode​(double x,
                                    double y)
        确定指定坐标相对于此Rectangle2D 此方法计算相应掩码值的二进制OR,表示对于此Rectangle2D每一侧,指定的坐标是否与该Rectangle2D的其余部分位于边缘的同一侧。
        参数
        x - 指定的X坐标
        y - 指定的Y坐标
        结果
        所有适当输出代码的逻辑或。
        从以下版本开始:
        1.2
        另请参见:
        OUT_LEFTOUT_TOPOUT_RIGHTOUT_BOTTOM
      • outcode

        public int outcode​(Point2D p)
        确定指定的Point2D相对于此Rectangle2D 此方法计算适当的掩码值的二进制OR,表示对于此Rectangle2D每一侧,指定的Point2D是否与该Rectangle2D的其余部分位于边缘的同一侧。
        参数
        p - 指定的 Point2D
        结果
        所有适当输出代码的逻辑或。
        从以下版本开始:
        1.2
        另请参见:
        OUT_LEFTOUT_TOPOUT_RIGHTOUT_BOTTOM
      • setFrame

        public void setFrame​(double x,
                             double y,
                             double w,
                             double h)
        将此 Rectangle2D的外边界的位置和大小设置为指定的矩形值。
        Specified by:
        setFrame在类 RectangularShape
        参数
        x - 此 Rectangle2D左上角的X坐标
        y - 此 Rectangle2D左上角的Y坐标
        w - 这个宽度 Rectangle2D
        h - 这个高度 Rectangle2D
        从以下版本开始:
        1.2
        另请参见:
        RectangularShape.getFrame()
      • getBounds2D

        public Rectangle2D getBounds2D()
        返回Shape高精度和更精确的边界框,而不是getBounds方法。 请注意,不保证返回的Rectangle2D是最小的边框包围Shape ,只表示Shape完全在指定的范围内Rectangle2D 此方法返回的边界框通常比getBounds方法返回的边界框更紧密,并且由于溢出问题而永远不会失败,因为返回值可以是使用双精度值来存储尺寸的Rectangle2D的实例。

        请注意, definition of insideness可能会导致shape定义轮廓上的shape可能不被视为包含在返回的bounds对象中,但仅限于原始shape不包含这些点的情况。

        如果point是内部shape根据contains(point)方法,那么它必须是内部返回Rectangle2D界限根据对象contains(point)所述的方法bounds 特别:

        shape.contains(p)需要bounds.contains(p)

        如果point不在shape ,则它可能仍包含在bounds对象中:

        bounds.contains(p)并不shape.contains(p)

        结果
        的实例 Rectangle2D那是一个高精度边界框 Shape
        从以下版本开始:
        1.2
        另请参见:
        Shape.getBounds()
      • contains

        public boolean contains​(double x,
                                double y)
        测试指定的坐标是否在 Shape的边界内,如 definition of insideness所述
        参数
        x - 要测试的指定X坐标
        y - 要测试的指定Y坐标
        结果
        true如果指定的坐标位于Shape边界内; 否则为false
        从以下版本开始:
        1.2
      • 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对象执行更精确的几何交集计算,因此如果需要更精确的答案,则可以使用它。
        参数
        x - 指定矩形区域左上角的X坐标
        y - 指定矩形区域左上角的Y坐标
        w - 指定矩形区域的宽度
        h - 指定矩形区域的高度
        结果
        true如果Shape的内部与矩形区域的内部相交,或者两者都很可能相交,并且交叉计算将太昂贵而无法执行; 否则为false
        从以下版本开始:
        1.2
        另请参见:
        Area
      • contains

        public boolean contains​(double x,
                                double y,
                                double w,
                                double h)
        测试Shape的内部Shape完全包含指定的矩形区域。 摆在矩形区域内必须将内在于所有的坐标Shape整个矩形区域被认为包含内Shape

        在以下情况下, Shape.contains()方法允许Shape实施保守地返回false

        • intersect方法返回true
        • 用于确定Shape是否完全包含矩形区域的计算非常昂贵。
        这意味着对于某些Shapes即使Shape包含矩形区域,此方法也可能返回false Area类比大多数Shape对象执行更精确的几何计算,因此如果需要更精确的答案,则可以使用它。
        参数
        x - 指定矩形区域左上角的X坐标
        y - 指定矩形区域左上角的Y坐标
        w - 指定矩形区域的宽度
        h - 指定矩形区域的高度
        结果
        true如果内部Shape完全包含指定矩形区域; false否则,或者,如果Shape包含矩形区域并且intersects方法返回true并且包含计算将太昂贵而无法执行。
        从以下版本开始:
        1.2
        另请参见:
        AreaShape.intersects(double, double, double, double)
      • createIntersection

        public abstract Rectangle2D createIntersection​(Rectangle2D r)
        返回一个新的 Rectangle2D对象,表示此 Rectangle2D与指定的 Rectangle2D
        参数
        r - Rectangle2D与此 Rectangle2D相交
        结果
        最大的 Rectangle2D包含在指定的 Rectangle2DRectangle2D
        从以下版本开始:
        1.2
      • intersect

        public static void intersect​(Rectangle2D src1,
                                     Rectangle2D src2,
                                     Rectangle2D dest)
        将指定的源对Rectangle2D对象相交,并将结果放入指定的目标Rectangle2D对象中。 其中一个源矩形也可以是避免创建第三个Rectangle2D对象的目标,但在这种情况下,此源矩形的原始点将被此方法覆盖。
        参数
        src1 - 一对 Rectangle2D对象中的第一个相互交叉
        src2 - 一对 Rectangle2D对象中的第二个相互交叉
        dest -所述 Rectangle2D保存的交集的结果 src1src2
        从以下版本开始:
        1.2
      • createUnion

        public abstract Rectangle2D createUnion​(Rectangle2D r)
        返回一个新的 Rectangle2D对象,表示此 Rectangle2D与指定的 Rectangle2D
        参数
        r - Rectangle2D与此 Rectangle2D结合使用
        结果
        最小的 Rectangle2D包含指定的 Rectangle2DRectangle2D
        从以下版本开始:
        1.2
      • union

        public static void union​(Rectangle2D src1,
                                 Rectangle2D src2,
                                 Rectangle2D dest)
        联合源对Rectangle2D对,并将结果放入指定的目标Rectangle2D对象。 其中一个源矩形也可以是避免创建第三个Rectangle2D对象的目标,但在这种情况下,此源矩形的原始点将被此方法覆盖。
        参数
        src1 - 一对 Rectangle2D对象中的第一个要相互组合
        src2 - 一对 Rectangle2D对象中的第二个要相互组合
        dest - Rectangle2D ,其中包含 src1src2的联合结果
        从以下版本开始:
        1.2
      • add

        public void add​(double newx,
                        double newy)
        将双精度参数newxnewy指定的点添加到此Rectangle2D 结果Rectangle2D是最小的Rectangle2D ,包含原始的Rectangle2D和指定的点。

        添加一个点后,使用添加的点作为参数调用contains不一定返回true 对于矩形的右边缘或底边缘上的点, contains方法不返回true 因此,如果添加的点落在放大矩形的左边缘或底边缘上,则contains将返回该点的false

        参数
        newx - 新点的X坐标
        newy - 新点的Y坐标
        从以下版本开始:
        1.2
      • add

        public void add​(Point2D pt)
        Point2D对象pt添加到此Rectangle2D 结果Rectangle2D是最小的Rectangle2D ,包含原始的Rectangle2D和指定的Point2D

        添加一个点后,使用添加的点作为参数调用contains不一定返回true 对于矩形的右边缘或底边缘上的点, contains方法不返回true 因此,如果添加的点落在放大矩形的左边缘或底边缘上,则contains将返回该点的false

        参数
        pt - 新增 Point2D加入此 Rectangle2D
        从以下版本开始:
        1.2
      • add

        public void add​(Rectangle2D r)
        添加Rectangle2D对象到此Rectangle2D 结果Rectangle2D是两个Rectangle2D对象的并集。
        参数
        r -将 Rectangle2D添加到这个 Rectangle2D
        从以下版本开始:
        1.2
      • getPathIterator

        public PathIterator getPathIterator​(AffineTransform at)
        返回定义此Rectangle2D边界的迭代对象。 此类的迭代器是多线程安全的,这意味着此Rectangle2D类保证对此Rectangle2D对象的几何的修改不会影响已在进行中的该几何的任何迭代。
        参数
        at - 可选的 AffineTransform应用于迭代中返回的坐标,如果需要未转换的坐标则 null
        结果
        PathIterator对象,返回此 Rectangle2D轮廓的几何,一次一个段。
        从以下版本开始:
        1.2
      • getPathIterator

        public PathIterator getPathIterator​(AffineTransform at,
                                            double flatness)
        返回一个迭代对象,该对象定义展平的Rectangle2D的边界。 由于矩形已经是平坦的,因此忽略flatness参数。 此类的迭代器是多线程安全的,这意味着此Rectangle2D类保证对此Rectangle2D对象的几何的修改不会影响已在进行中的该几何的任何迭代。
        Specified by:
        getPathIterator在界面 Shape
        重写:
        getPathIterator在类 RectangularShape
        参数
        at - 在迭代中返回时应用于坐标的可选 AffineTransform null如果需要未转换的坐标,则 null
        flatness - 允许用于近似弯曲段的线段的最大距离偏离原始曲线上的任何点。 由于矩形已经是平坦的,因此忽略flatness参数。
        结果
        PathIterator对象,返回此 Rectangle2D轮廓的几何,一次一个段。
        从以下版本开始:
        1.2
      • equals

        public boolean equals​(Object obj)
        确定指定的Object是否等于此Rectangle2D 指定Object等于该Rectangle2D如果是的一个实例Rectangle2D ,如果它的位置和大小是相同的,因为这Rectangle2D
        重写:
        equals在类 Object
        参数
        obj -一个 Object与此相比较 Rectangle2D
        结果
        true如果obj是的一个实例Rectangle2D ,并具有相同的值; 否则为false
        从以下版本开始:
        1.2
        另请参见:
        Object.hashCode()HashMap