public class Area extends Object implements Shape, Cloneable
Area对象存储和操纵二维空间的封闭区域的与分辨率无关的描述。
Area对象可以被转换,并且可以与其他Area对象组合时执行各种建构区域几何(CAG)操作。
该CAG操作包括区域addition , subtraction , intersection和exclusive or 。
有关各种操作的示例,请参阅链接方法文档。
Area类实现了Shape接口,并提供了对所有命中测试和路径迭代功能的全面支持,但Area比通用路径更具体,有以下几种:
Area从未封闭路径Area对象在构造过程中隐式关闭,就好像这些路径已被Graphics2D.fill方法填充。 Area构造它的路径,只是它描述了相同的封闭的二维区域,但是可能使用完全不同的类型和路径段的排序来实现。 Area包括:
Area关闭(打开) Shape创建Shape导致Area对象中的封闭轮廓。 Shape创建一个Area ,它不包含任何区域(即使“关闭”)也会产生一个空的Area 。 这个问题的一个常见的例子是,从行生成一个Area将是空的,因为该行不包含任何区域。 空的Area将在其PathIterator对象中不迭代几何。 Shape可以被分成两个(或更多个)子路径,每个子路径包围原始路径的不相交部分之一。 Area可以采用更多的路径段来描述相同的几何,即使原始轮廓是简单明了的。 Area课程必须在道路上进行的分析可能不会反映出人类感觉到的“简单明了”的概念。 | Constructor and Description |
|---|
Area()
创建空区域的默认构造函数。
|
Area(Shape s)
Area类从指定的Shape对象创建一个区域几何。
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(Area rhs)
添加指定的形状
Area这个形状
Area 。
|
Object |
clone()
返回此
Area对象的精确副本。
|
boolean |
contains(double x, double y)
测试指定坐标的对象的边界内
Shape ,如所描述的
definition of insideness 。
|
boolean |
contains(double x, double y, double w, double h)
测试
Shape的内部是否包含指定的矩形区域。
|
boolean |
contains(Point2D p)
测试指定 Point2D是的边界内Shape ,如所描述的definition of insideness 。
|
boolean |
contains(Rectangle2D r)
测试
Shape的内部
Shape全部包含指定的
Rectangle2D 。
|
Area |
createTransformedArea(AffineTransform t)
创建一个新的
Area对象,其中包含相同的几何形状,因为这
Area由指定转化
AffineTransform 。
|
boolean |
equals(Area other)
测试两个
Area对象的
Area是否相等。
|
void |
exclusiveOr(Area rhs)
设置此的形状
Area是其当前形状的组合区域和指定的形状
Area ,减去其交集。
|
Rectangle |
getBounds()
返回边界 Rectangle完全包围此Area 。
|
Rectangle2D |
getBounds2D()
返回一个高精度的边界 Rectangle2D完全包围此Area 。
|
PathIterator |
getPathIterator(AffineTransform at)
为此 Area对象的轮廓创建一个PathIterator 。
|
PathIterator |
getPathIterator(AffineTransform at, double flatness)
为此
Area对象的扁平轮廓创建一个
PathIterator 。
|
void |
intersect(Area rhs)
将此
Area的形状设置为当前形状和指定的形状Area的
Area 。
|
boolean |
intersects(double x, double y, double w, double h)
测试,如果内部
Shape相交的指定矩形区域的内部。
|
boolean |
intersects(Rectangle2D r)
如果测试的内部
Shape相交指定的内部
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)
这个转换的几何形状 Area使用指定的AffineTransform 。
|
public Area()
public Area(Shape s)
s -
Shape该地区的Shape
NullPointerException - 如果
s为空
public void add(Area rhs)
Area这个形状Area 。
所得到的这个形状Area将包括两个形状的结合,或载于非此即彼的规定,所有地区Area 。
// Example:
Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
a1.add(a2);
a1(before) + a2 = a1(after)
################ ################ ################
############## ############## ################
############ ############ ################
########## ########## ################
######## ######## ################
###### ###### ###### ######
#### #### #### ####
## ## ## ##
rhs - 要添加到当前形状的
Area
NullPointerException - 如果
rhs为空
public void subtract(Area rhs)
Area从这个形状Area 。
由此形成的Area将包括仅在此Area而不是在指定的Area中Area 。
// Example:
Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
a1.subtract(a2);
a1(before) - a2 = a1(after)
################ ################
############## ############## ##
############ ############ ####
########## ########## ######
######## ######## ########
###### ###### ######
#### #### ####
## ## ##
rhs -所述
Area从当前形状中减去
NullPointerException - 如果
rhs为空
public void intersect(Area rhs)
Area的形状设置为其当前形状和指定的形状Area的Area 。
所得到的这个形状Area将只包括被包含在这两个领域Area ,并在指定的Area 。
// Example:
Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
a1.intersect(a2);
a1(before) intersect a2 = a1(after)
################ ################ ################
############## ############## ############
############ ############ ########
########## ########## ####
######## ########
###### ######
#### ####
## ##
rhs -在
Area与此相交
Area
NullPointerException - 如果
rhs为空
public void exclusiveOr(Area rhs)
Area是其当前形状的组合区域和指定的形状Area ,减去其交集。
由此形成的Area将仅包括本Area或指定的Area中Area ,但不包括两者。
// Example:
Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
a1.exclusiveOr(a2);
a1(before) xor a2 = a1(after)
################ ################
############## ############## ## ##
############ ############ #### ####
########## ########## ###### ######
######## ######## ################
###### ###### ###### ######
#### #### #### ####
## ## ## ##
rhs -
Area要与此
Area进行异或。
NullPointerException - 如果
rhs为空
public void reset()
Area删除所有几何,并将其还原到一个空白区域。
public boolean isEmpty()
Area对象是否包围任何区域。
true如果此Area对象表示空白区域;
false否则。
public boolean isPolygonal()
Area是否完全由直边多边形几何组成。
true如果这个Area的几何完全由线段组成;
false否则。
public boolean isRectangular()
Area是否是矩形的。
true如果这个Area的几何形状是矩形的;
false否则。
public boolean isSingular()
Area是否由一个封闭的子路径组成。
如果路径包含0或1 false路径,则该方法返回true ,如果路径包含多于1 false路径,则返回true 。
子路径按路径中显示的SEG_MOVETO段的数量进行计数。
true如果Area由单个基本几何构成;
false否则。
public Rectangle2D getBounds2D()
Rectangle2D完全包围此Area 。
Area类将尝试返回Shape的最紧密的边界框。 边框不会被填充以包括Shape的轮廓中的曲线的控制点,但应紧密地适合轮廓本身的实际几何。
getBounds2D在接口
Shape
Rectangle2D为
Area 。
Shape.getBounds()
public Rectangle getBounds()
Rectangle完全包围此Area 。
Area类将尝试返回Shape的最紧密的边界框。 边框不会被填充以包括Shape的轮廓中的曲线的控制点,但应紧密地适合轮廓本身的实际几何。 由于返回的对象表示具有整数的边界框,边界框只能与包含Shape几何的最接近的整数坐标一样紧。
getBounds在界面
Shape
Rectangle为
Area 。
Shape.getBounds2D()
public Object clone()
Area对象的精确副本。
public boolean equals(Area other)
Area对象的Area是否相等。
如果参数为null,此方法将返回false。
other -在
Area被比作此
Area
true如果两个几何相等;
false否则。
public void transform(AffineTransform t)
Area使用指定的AffineTransform 。
几何被转换到位,永久地改变由该对象定义的封闭区域。
t - 用于转换区域的转换
NullPointerException - 如果
t为空
public Area createTransformedArea(AffineTransform t)
Area对象,其中包含相同的几何形状,因为这Area由指定转化AffineTransform 。
这个Area对象没有变化。
t - 指定的
AffineTransform用于转换新的
Area
Area对象。
NullPointerException - 如果
t为空
public boolean contains(double x,
double y)
Shape ,如所描述的
definition of insideness 。
public boolean contains(Point2D p)
Point2D是的边界内Shape ,如所描述的definition of insideness 。
public boolean contains(double x,
double y,
double w,
double h)
Shape的内部是否包含指定的矩形区域。
位于矩形区域内的所有坐标都必须在Shape内,以便将整个矩形区域视为包含在Shape 。
Shape.contains()方法允许一个Shape保守地返回false当:
intersect方法返回true和 Shape完全包含矩形区域的代价太高。 Shapes即使Shape包含矩形区域,此方法也可能返回false 。
所述Area类比大多数执行更精确的几何计算Shape对象,因此可以在需要更精确的答案一起使用。
contains在界面
Shape
x - 指定矩形区域左上角的X坐标
y - 指定矩形区域左上角的Y坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
true如果内部Shape完全包含指定矩形区域;
false否则或如果Shape包含矩形区域,并且intersects方法返回true并且包含计算将太昂贵执行。
Area , Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Shape的内部Shape全部包含指定的Rectangle2D 。
Shape.contains()方法允许一个Shape保守地返回false当:
intersect方法返回true和 Shape完全包含Rectangle2D的代价太高。 Shapes这种方法也可能返回false即使Shape包含Rectangle2D 。
所述Area类比大多数执行更精确的几何计算Shape对象,因此可以在需要更精确的答案一起使用。
contains在接口
Shape
r - 指定的
Rectangle2D
true如果内部Shape完全包含Rectangle2D ;
false否则或如果Shape包含Rectangle2D和intersects方法返回true并且包含计算将太昂贵执行。
Shape.contains(double, double, double, double)
public boolean intersects(double x,
double y,
double w,
double h)
Shape相交的指定矩形区域的内部。
矩形区域被认为是交叉的Shape如果任何点被包含在双方的内部Shape和指定的矩形区域。
Shape.intersects()方法允许一个Shape保守地返回true当:
Shape相交的Shape很高,但是 Shapes这个方法可能会返回true即使矩形区域不相交Shape 。
所述Area类执行几何相交的更精确的计算比大多数Shape可以,如果需要更精确的答案被使用的对象,因此。
intersects在界面
Shape
x - 指定矩形区域左上角的X坐标
y - 指定矩形区域左上角的Y坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
true如果Shape的内部和矩形区域的内部相交,或者很可能相交,并且交叉点计算将太昂贵,不能执行;
false否则。
Area
public boolean intersects(Rectangle2D r)
Shape相交指定的内部Rectangle2D 。
该Shape.intersects()方法允许Shape实现谨慎地返回true时:
Rectangle2D和Shape相交的Shape很高,但是 Shapes这个方法可能会返回true即使Rectangle2D不相交Shape 。
所述Area类执行几何相交的更精确的计算比大多数Shape可以,如果需要更精确的答案被使用的对象,因此。
intersects中的
Shape
r - 指定的
Rectangle2D
true如果内部Shape和指定的内部Rectangle2D相交,或两者均是高度可能相交及交叉点计算。将执行太贵;
false否则。
Shape.intersects(double, double, double, double)
public PathIterator getPathIterator(AffineTransform at)
Area对象的轮廓创建一个PathIterator 。
此Area对象未更改。
getPathIterator在界面
Shape
at - 要在迭代中返回的应用于
at的可选
AffineTransform ,如果需要未转换的
null ,则为null
PathIterator对象返回这个
Area的轮廓的几何,一次一个段。
public PathIterator getPathIterator(AffineTransform at, double flatness)
Area对象的扁平轮廓创建一个PathIterator 。
由SEG_MOVETO,SEG_LINETO和SEG_CLOSE点类型表示的未曲线的路径段仅由迭代器返回。
此Area对象未更改。
getPathIterator中的
Shape
at - 要在迭代中返回时应用于
at的可选
AffineTransform ,如果需要未转换的
null ,则为null
flatness - 给定曲线的控制点的最大量可以在共线之前变化,而细分曲线由连接终点的直线代替
PathIterator对象返回这个
Area的轮廓的几何,一次一个段。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.