模块  java.desktop
软件包  java.awt

Interface Shape

    • 方法详细信息

      • getBounds

        Rectangle getBounds()
        返回一个整数Rectangle完全包围Shape 请注意,不保证返回的Rectangle是最小的边框包围Shape ,只表示Shape完全在指定的范围内Rectangle 如果Shape溢出整数数据类型的有限范围,则返回的Rectangle也可能无法完全包含Shape getBounds2D方法通常返回更严格的边界框,因为它具有更强的表示灵活性。

        请注意, definition of insideness可能导致shape的定义轮廓上的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)

        结果
        整数 Rectangle ,完全包含 Shape
        从以下版本开始:
        1.2
        另请参见:
        getBounds2D()
      • getBounds2D

        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
        另请参见:
        getBounds()
      • contains

        boolean contains​(double x,
                         double y)
        测试指定的坐标是否在 Shape的边界内,如 definition of insideness所述
        参数
        x - 要测试的指定X坐标
        y - 要测试的指定Y坐标
        结果
        true如果指定的坐标在Shape边界内; 否则为false
        从以下版本开始:
        1.2
      • contains

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

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

        Shape.intersects()方法允许Shape实现在Shape情况下保守地返回true

        • 矩形区域与Shape交叉的概率很高,但是
        • 精确确定这个交叉点的计算非常昂贵。
        这意味着对于某些Shapes这种方法也可能返回true即使矩形区域没有相交Shape Area类比大多数Shape对象执行更精确的几何交集计算,因此如果需要更精确的答案,则可以使用它。
        参数
        x - 指定矩形区域左上角的X坐标
        y - 指定矩形区域左上角的Y坐标
        w - 指定矩形区域的宽度
        h - 指定矩形区域的高度
        结果
        true如果Shape的内部与矩形区域的内部相交,或者两者都很可能相交并且交叉计算将太昂贵而无法执行; 否则为false
        从以下版本开始:
        1.2
        另请参见:
        Area
      • intersects

        boolean intersects​(Rectangle2D r)
        测试Shape的内部是否与指定的Rectangle2D的内部相交。 Shape.intersects()方法允许Shape实现在Shape情况下保守地返回true
        • Rectangle2DShape相交的概率很高,但是
        • 精确确定这个交叉点的计算非常昂贵。
        这意味着对于某些Shapes这种方法也可能返回true即使Rectangle2D不相交Shape Area类比大多数Shape对象执行更精确的几何交集计算,因此如果需要更精确的答案,则可以使用它。
        参数
        r - 指定的 Rectangle2D
        结果
        true如果Shape的内部与指定的Rectangle2D的内部相交,或者两者都很可能相交,并且交叉计算将太昂贵而无法执行; 否则为false
        从以下版本开始:
        1.2
        另请参见:
        intersects(double, double, double, double)
      • contains

        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对象执行更精确的几何计算,因此如果需要更精确的答案,则可以使用它。
        参数
        x - 指定矩形区域左上角的X坐标
        y - 指定矩形区域左上角的Y坐标
        w - 指定矩形区域的宽度
        h - 指定矩形区域的高度
        结果
        true如果内部Shape完全包含指定矩形区域; false否则,或者,如果Shape包含矩形区域并且intersects方法返回true并且包含计算将太昂贵而无法执行。
        从以下版本开始:
        1.2
        另请参见:
        Areaintersects(double, double, double, double)
      • contains

        boolean contains​(Rectangle2D r)
        测试Shape的内部Shape完全包含指定的Rectangle2D Shape.contains()方法允许Shape实现在Shape情况下保守地返回false
        • intersect方法返回true
        • 用于确定Shape是否完全包含Rectangle2D的计算非常昂贵。
        这意味着对于某些Shapes这种方法也可能返回false即使Shape包含Rectangle2D Area类比大多数Shape对象执行更精确的几何计算,因此如果需要更精确的答案,则可以使用它。
        参数
        r - 指定的 Rectangle2D
        结果
        true如果内部Shape完全包含Rectangle2D ; false否则,或者,如果Shape包含Rectangle2D并且intersects方法返回true并且包含计算将太昂贵而无法执行。
        从以下版本开始:
        1.2
        另请参见:
        contains(double, double, double, double)
      • getPathIterator

        PathIterator getPathIterator​(AffineTransform at)
        返回迭代器对象,该对象沿Shape边界进行迭代,并提供对Shape大纲几何的访问。 如果指定了可选的AffineTransform ,则相应地转换迭代中返回的坐标。

        此方法每次调用返回一个新鲜PathIterator对象横穿的几何形状Shape从任何其他独立对象PathIterator在使用中在相同的时间对象。

        建议(但不能保证)实现Shape接口的对象隔离Shape迭代,这些迭代是在此类迭代期间可能对原始对象的几何体发生的任何更改。

        参数
        at - 可选的 AffineTransform应用于迭代中返回的坐标,如果需要未转换的坐标则 null
        结果
        一个新的 PathIterator对象,它独立地遍历 Shape的几何。
        从以下版本开始:
        1.2
      • getPathIterator

        PathIterator getPathIterator​(AffineTransform at,
                                     double flatness)
        返回迭代器对象,该对象沿Shape边界进行迭代,并提供对Shape轮廓几何体的Shape平视图的访问。

        迭代器仅返回SEG_MOVETO,SEG_LINETO和SEG_CLOSE点类型。

        如果指定了可选的AffineTransform ,则会相应地转换迭代中返回的坐标。

        弯曲段的细分量由flatness参数控制,该参数指定未平坦变换曲线上的任何点可以偏离返回的平坦路径段的最大距离。 请注意,可能会默默地施加对展平路径精度的限制,从而导致非常小的展平参数被视为较大的值。 此限制(如果有)由所使用的特定实现定义。

        每次调用此方法都会返回一个新的PathIterator对象,该对象独立于同时使用的任何其他PathIterator对象遍历Shape对象几何。

        建议但不能保证实现Shape接口的对象隔离Shape迭代,这些迭代是在此类迭代期间可能对原始对象的几何体发生的任何更改。

        参数
        at - 可选的 AffineTransform应用于迭代中返回的坐标,如果需要未转换的坐标则 null
        flatness - 允许用于近似弯曲段的线段的最大距离偏离原始曲线上的任何点
        结果
        一个新的 PathIterator ,它独立地遍历 Shape几何图形的平面视图。
        从以下版本开始:
        1.2