Module  java.desktop
软件包  java.awt.geom

Class RectangularShape

  • All Implemented Interfaces:
    ShapeCloneable
    已知直接子类:
    Arc2DEllipse2DRectangle2DRoundRectangle2D


    public abstract class RectangularShape
    extends Object
    implements Shape, Cloneable
    RectangularShape是几何由矩形框架定义的Shape对象的基类。 这个类本身并不直接指定任何特定的几何体,而只是提供由Shape对象的整个类别继承的操作方法。 该类提供的操作方法可用于查询和修改矩形框架,为框架子集定义几何图形提供了参考。
    从以下版本开始:
    1.2
    • 构造方法详细信息

    • 方法详细信息

      • getX

        public abstract double getX​()
        double精度返回成帧矩形左上角的X坐标。
        结果
        框架矩形左上角的X坐标。
        从以下版本开始:
        1.2
      • getY

        public abstract double getY​()
        double精度返回成帧矩形左上角的Y坐标。
        结果
        框架矩形左上角的Y坐标。
        从以下版本开始:
        1.2
      • getWidth

        public abstract double getWidth​()
        double精度返回成帧矩形的宽度。
        结果
        框架矩形的宽度。
        从以下版本开始:
        1.2
      • getHeight

        public abstract double getHeight​()
        double精度返回框架矩形的高度。
        结果
        框架矩形的高度。
        从以下版本开始:
        1.2
      • getMinX

        public double getMinX​()
        double精度返回 Shape的成帧矩形的最小X坐标。
        结果
        Shape的框架矩形的最小X坐标。
        从以下版本开始:
        1.2
      • getMinY

        public double getMinY​()
        double精度返回 Shape的成帧矩形的最小Y坐标。
        结果
        Shape的框架矩形的最小Y坐标。
        从以下版本开始:
        1.2
      • getMaxX

        public double getMaxX​()
        double精度返回 Shape的成帧矩形的最大X坐标。
        结果
        Shape的框架矩形的最大X坐标。
        从以下版本开始:
        1.2
      • getMaxY

        public double getMaxY​()
        double精度返回 Shape的成帧矩形的最大Y坐标。
        结果
        Shape框架矩形的最大Y坐标。
        从以下版本开始:
        1.2
      • getCenterX

        public double getCenterX​()
        double精度返回 Shape的框架矩形中心的X坐标。
        结果
        Shape框架矩形中心的X坐标。
        从以下版本开始:
        1.2
      • getCenterY

        public double getCenterY​()
        double精度 Shape double框架矩形中心的Y坐标。
        结果
        Shape框架矩形中心的Y坐标。
        从以下版本开始:
        1.2
      • isEmpty

        public abstract boolean isEmpty​()
        确定RectangularShape是否为空。 RectangularShape为空时,它不会包围任何区域。
        结果
        true如果RectangularShape是空的; 否则为false
        从以下版本开始:
        1.2
      • setFrame

        public abstract void setFrame​(double x,
                                      double y,
                                      double w,
                                      double h)
        将此 Shape的成帧矩形的位置和大小设置为指定的矩形值。
        参数
        x - 指定矩形左上角的X坐标
        y - 指定矩形左上角的Y坐标
        w - 指定长方形的宽度
        h - 指定长方形的高度
        从以下版本开始:
        1.2
        另请参见:
        getFrame()
      • setFrame

        public void setFrame​(Point2D loc,
                             Dimension2D size)
        将此Shape的成帧矩形的位置和大小分别设置为Point2DDimension2D 框架矩形由RectangularShape的子类用于定义其几何。
        参数
        loc - 指定的 Point2D
        size - 指定的 Dimension2D
        从以下版本开始:
        1.2
        另请参见:
        getFrame()
      • setFrame

        public void setFrame​(Rectangle2D r)
        将此Shape的成帧矩形设置为指定的Rectangle2D 框架矩形由RectangularShape的子类用于定义其几何。
        参数
        r - 指定的 Rectangle2D
        从以下版本开始:
        1.2
        另请参见:
        getFrame()
      • setFrameFromDiagonal

        public void setFrameFromDiagonal​(double x1,
                                         double y1,
                                         double x2,
                                         double y2)
        基于两个指定的坐标,设置该Shape的框架矩形的对角线。 框架矩形由RectangularShape的子类用于定义其几何。
        参数
        x1 - 指定对角线起始点的X坐标
        y1 - 指定对角线起始点的Y坐标
        x2 - 指定对角线的终点的X坐标
        y2 - 指定对角线终点的Y坐标
        从以下版本开始:
        1.2
      • setFrameFromDiagonal

        public void setFrameFromDiagonal​(Point2D p1,
                                         Point2D p2)
        基于两个指定的Point2D对象设置Shape的框架矩形的对角线。 框架矩形由RectangularShape的子类用于定义其几何。
        参数
        p1 - 指定对角线的起始 Point2D
        p2 - 指定对角线的末端 Point2D
        从以下版本开始:
        1.2
      • setFrameFromCenter

        public void setFrameFromCenter​(double centerX,
                                       double centerY,
                                       double cornerX,
                                       double cornerY)
        根据指定的中心点坐标和角点坐标设置此Shape的框架矩形。 框架矩形由RectangularShape的子类用于定义其几何。
        参数
        centerX - 指定中心点的X坐标
        centerY - 指定中心点的Y坐标
        cornerX - 指定角点的X坐标
        cornerY - 指定角点的Y坐标
        从以下版本开始:
        1.2
      • setFrameFromCenter

        public void setFrameFromCenter​(Point2D center,
                                       Point2D corner)
        根据指定的中心Point2D和角Point2D设置此Shape的框架矩形。 框架矩形由RectangularShape的子类用于定义其几何。
        参数
        center - 指定中心 Point2D
        corner - 指定的角 Point2D
        从以下版本开始:
        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​(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​(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包含Rectangle2Dintersects方法返回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可能会导致出现对的定义轮廓点的情况下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,
                                            double flatness)
        返回一个迭代器对象,该对象沿Shape对象的边界进行迭代,并提供对Shape对象的几何体轮廓的平坦化视图的访问。

        只有SEG_MOVETO,SEG_LINETO和SEG_CLOSE点类型将由迭代器返回。

        曲线段的细分量由flatness参数控制,该参数指定未平坦化变换曲线上的任何点可能偏离返回的平坦化路径段的最大距离。 可以指定可选的AffineTransform以便相应地转换迭代中返回的坐标。

        Specified by:
        getPathIterator在接口 Shape
        参数
        at - 要在迭代中返回时应用于坐标的可选 AffineTransform ,如果需要未转换的坐标, null
        flatness - 用于近似曲线段的线段的最大距离允许偏离原始曲线上的任何点
        结果
        一个 PathIterator对象,可以访问 Shape对象的展平几何。
        从以下版本开始:
        1.2
      • clone

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