JavaTM 2 Platform
Standard Ed. 5.0

java.awt.geom
类 Area

java.lang.Object
  继承者 java.awt.geom.Area
所有已实现的接口:
Shape, Cloneable

public class Area
extends Object
implements Shape, Cloneable

Area 类是任意形状区域的与设备无关的规范。Area 对象是作为对其他封闭区域的几何形状(如矩形、椭圆形和多边形)执行某些二进制 CAG(构造区域几何图形,Constructive Area Geometry)操作的对象而定义的。CAG 操作包括 Add(union)、Subtract、Intersect 和 ExclusiveOR。例如,一个 Area 可以由一个矩形区域减去一个椭圆形区域组成。


构造方法摘要
Area()
          创建空区域的默认构造方法。
Area(Shape s)
          Area 类可以根据指定的 Shape 对象创建区域几何形状。
 
方法摘要
 void add(Area rhs)
          将指定 Area 的形状添加到此 Area 的形状中。
 Object clone()
          返回此 Area 对象的确切副本。
 boolean contains(double x, double y)
          测试指定点是否位于此 Area 对象的边界内。
 boolean contains(double x, double y, double w, double h)
          测试此 Area 对象的内部是否完全包含指定的矩形区域。
 boolean contains(Point2D p)
          测试指定的 Point2D 是否位于此 Area 对象的边界内。
 boolean contains(Rectangle2D p)
          测试此 Area 对象的内部是否完全包含指定的 Rectangle2D
 Area createTransformedArea(AffineTransform t)
          创建一个新 Area 对象,使它与由指定 AffineTransform 变换的 Area 包含相同的几何形状。
 boolean equals(Area other)
          测试两个 Area 对象的几何形状是否相等。
 void exclusiveOr(Area rhs)
          将此 Area 的形状设置为其当前形状与指定 Area 形状的组合区域,并减去其交集。
 Rectangle getBounds()
          返回完全包围此 Area 的边界 Rectangle
 Rectangle2D getBounds2D()
          返回完全包围此 Area 的高精度边界 Rectangle2D
 PathIterator getPathIterator(AffineTransform at)
          为此 Area 对象的轮廓创建 PathIterator
 PathIterator getPathIterator(AffineTransform at, double flatness)
          为此 Area 对象的变平轮廓创建 PathIterator
 void intersect(Area rhs)
          将此 Area 的形状设置为其当前形状与指定 Area 形状的交集。
 boolean intersects(double x, double y, double w, double h)
          测试此 Area 对象的内部是否与指定矩形区域的内部相交。
 boolean intersects(Rectangle2D p)
          测试此 Area 对象的内部是否与指定 Rectangle2D 的内部相交。
 boolean isEmpty()
          测试此 Area 对象是否包括其他区域。
 boolean isPolygonal()
          测试此 Area 是否完全由直边多边形组成。
 boolean isRectangular()
          测试此 Area 的形状是否是矩形。
 boolean isSingular()
          测试此 Area 是否由单个封闭子路径组成。
 void reset()
          从此 Area 删除所有几何形状,将其恢复为空区域。
 void subtract(Area rhs)
          从此 Area 的形状中减去指定 Area 的形状。
 void transform(AffineTransform t)
          使用指定的 AffineTransform 变换此 Area 的几何形状。
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Area

public Area()
创建空区域的默认构造方法。


Area

public Area(Shape s)
Area 类可以根据指定的 Shape 对象创建区域几何形状。如果 Shape 还不是封闭的,则显式地封闭几何形状。由 Shape 的几何形状指定的填充规则(奇偶或缠绕)用于确定所产生的封闭区域。

参数:
s - 用于构造区域的 Shape
方法详细信息

add

public void add(Area rhs)
将指定 Area 的形状添加到此 Area 的形状中。添加操作是通过 union 实现的。

参数:
rhs - 要添加到当前形状的 Area

subtract

public void subtract(Area rhs)
从此 Area 的形状中减去指定 Area 的形状。

参数:
rhs - 要从当前形状减去的 Area

intersect

public void intersect(Area rhs)
将此 Area 的形状设置为其当前形状与指定 Area 形状的交集。

参数:
rhs - 要与此 Area 相交的 Area

exclusiveOr

public void exclusiveOr(Area rhs)
将此 Area 的形状设置为其当前形状与指定 Area 形状的组合区域,并减去其交集。

参数:
rhs - 要与此 Area 进行异或运算的 Area

reset

public void reset()
从此 Area 删除所有几何形状,将其恢复为空区域。


isEmpty

public boolean isEmpty()
测试此 Area 对象是否包括其他区域。

返回:
如果此 Area 对象表示空区域,则返回 true;否则返回 false

isPolygonal

public boolean isPolygonal()
测试此 Area 是否完全由直边多边形组成。

返回:
如果此 Area 全部由线段组成,则返回 true;否则返回 false

isRectangular

public boolean isRectangular()
测试此 Area 的形状是否是矩形。

返回:
如果此 Area 的几何形状是矩形,则返回 true;否则返回 false

isSingular

public boolean isSingular()
测试此 Area 是否由单个封闭子路径组成。如果路径包含 0 个或 1 个子路径,则此方法返回 true;如果路径包含 1 个以上的子路径,则返回 false。子路径是根据路径中出现的 SEG_MOVETO 段数来计算的。

返回:
如果 Area 由单个基本几何形状组成,则返回 true;否则返回 false

getBounds2D

public Rectangle2D getBounds2D()
返回完全包围此 Area 的高精度边界 Rectangle2D

Area 类将尽量为 Shape 返回可能的最紧密的边界框。不要填充边界框以包含 Shape 轮廓上的曲线的控制点,而应该让边界框紧密地适合轮廓本身的实际几何形状。

指定者:
接口 Shape 中的 getBounds2D
返回:
Area 的边界 Rectangle2D
另请参见:
Shape.getBounds()

getBounds

public Rectangle getBounds()
返回完全包围此 Area 的边界 Rectangle

Area 类将尽量为 Shape 返回可能的最紧密的边界框。不要填充边界框以包含 Shape 轮廓上的曲线的控制点,而应该让边界框紧密地适合轮廓本身的实际几何形状。因为返回的对象使用整数表示边界框,所以边界框只能是围绕 Shape 几何形状尽可能紧密的整数坐标。

指定者:
接口 Shape 中的 getBounds
返回:
Area 的边界 Rectangle
另请参见:
Shape.getBounds2D()

clone

public Object clone()
返回此 Area 对象的确切副本。

覆盖:
Object 中的 clone
返回:
创建的克隆对象
另请参见:
Cloneable

equals

public boolean equals(Area other)
测试两个 Area 对象的几何形状是否相等。

参数:
other - 要与此 Area 比较的 Area
返回:
如果两个几何形状相等,则返回 true;否则返回 false

transform

public void transform(AffineTransform t)
使用指定的 AffineTransform 变换此 Area 的几何形状。原地变换几何形状,它将永久更改由此对象定义的封闭区域。

参数:
t - 用于变换区域的变换

createTransformedArea

public Area createTransformedArea(AffineTransform t)
创建一个新 Area 对象,使它与由指定 AffineTransform 变换的 Area 包含相同的几何形状。此 Area 对象不改变。

参数:
t - 用于变换新 Area 的指定 AffineTransform
返回:
a 表示变换了的几何形状的新 Area 对象。

contains

public boolean contains(double x,
                        double y)
测试指定点是否位于此 Area 对象的边界内。

指定者:
接口 Shape 中的 contains
参数:
x, y - 指定的点
返回:
如果点完全位于 Area 的内部,则返回 true;否则返回 false

contains

public boolean contains(Point2D p)
测试指定的 Point2D 是否位于此 Area 对象的边界内。

指定者:
接口 Shape 中的 contains
参数:
p - 要测试的 Point2D
返回:
如果指定的 Point2D 完全位于 Area 的内部,则返回 true;否则返回 false

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
测试此 Area 对象的内部是否完全包含指定的矩形区域。

指定者:
接口 Shape 中的 contains
参数:
x, y - 指定矩形区域左上角的坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
如果指定的矩形区域完全位于 Area 的内部,则返回 true;否则返回 false
另请参见:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D p)
测试此 Area 对象的内部是否完全包含指定的 Rectangle2D

指定者:
接口 Shape 中的 contains
参数:
p - 要测试的 Rectangle2D
返回:
如果指定的 Rectangle2D 完全位于 Area 的内部,则返回 true;否则返回 false
另请参见:
Shape.contains(double, double, double, double)

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
测试此 Area 对象的内部是否与指定矩形区域的内部相交。

指定者:
接口 Shape 中的 intersects
参数:
x, y - 指定矩形区域左上角的坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
如果内部与矩形区域相交,则返回 true;否则返回 false
另请参见:
Area

intersects

public boolean intersects(Rectangle2D p)
测试此 Area 对象的内部是否与指定 Rectangle2D 的内部相交。

指定者:
接口 Shape 中的 intersects
参数:
p - 要测试是否相交的 Rectangle2D
返回:
如果内部与 Rectangle2D 相交,则返回 true;否则返回 false
另请参见:
Shape.intersects(double, double, double, double)

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
为此 Area 对象的轮廓创建 PathIterator。此 Area 对象不改变。

指定者:
接口 Shape 中的 getPathIterator
参数:
at - 一个可选的 AffineTransform,用于在迭代中返回的坐标,如果需要未变换的坐标,则为 null
返回:
返回此 Area 轮廓几何形状的 PathIterator 对象,一次一段。

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
为此 Area 对象的变平轮廓创建 PathIterator。迭代器只返回由 SEG_MOVETO、SEG_LINETO 和 SEG_CLOSE 点类型所表示的非曲线路径段。此 Area 对象不改变。

指定者:
接口 Shape 中的 getPathIterator
参数:
at - 一个可选的 AffineTransform,用于迭代中返回的坐标,如果需要未变换的坐标,则为 null
flatness - 在由连接端点的直线取代细分曲线之前,给定曲线的控制点可以从共线变化的最大量
返回:
返回此 Area 轮廓几何形状的 PathIterator 对象,一次一段。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策