JavaTM Platform
Standard Ed. 6

java.awt.geom
类 Arc2D

java.lang.Object
  继承者 java.awt.geom.RectangularShape
      继承者 java.awt.geom.Arc2D
所有已实现的接口:
Shape, Cloneable
直接已知子类:
Arc2D.Double, Arc2D.Float

public abstract class Arc2D
extends RectangularShape

Arc2D 是所有存储 2D 弧度的对象的抽象超类,其中 2D 弧度由窗体矩形、起始角度、角跨越(弧的长度)和闭合类型(OPENCHORDPIE)定义。

弧度是其父 RectangularShape 窗体矩形内切完整椭圆的一部分。 角度是相对于非正方形的窗体矩形指定的,从而 45 度角总是落在椭圆中心到窗体矩形右上角的连线上。因此,如果窗体矩形沿一条轴的长度远长于沿另一条轴的长度,则弧段起始点和结束点间的角度将沿窗体长轴发生较大偏斜。

坐标的实际存储表示形式由子类决定。

从以下版本开始:
1.2

嵌套类摘要
static class Arc2D.Double
          此类定义以 double 精度指定的弧。
static class Arc2D.Float
          此类定义以 float 精度指定的弧。
 
字段摘要
static int CHORD
          闭合类型,用于通过从弧段的起始点到弧段的结束点画一条直线来闭合的弧。
static int OPEN
          闭合类型,用于不具有用来连接弧段两个端点的路径段的开弧。
static int PIE
          闭合类型,用于通过从弧段的起始点到完整椭圆的中心,再从圆心到弧段的结束点画直线来闭合的弧。
 
构造方法摘要
protected Arc2D(int type)
          这是一个不能直接实例化的抽象类。
 
方法摘要
 boolean contains(double x, double y)
          确定指定的点是否位于弧的边界内。
 boolean contains(double x, double y, double w, double h)
          确定弧的内部是否完全包含指定的矩形。
 boolean contains(Rectangle2D r)
          确定弧的内部是否完全包含指定的矩形。
 boolean containsAngle(double angle)
          确定指定的角度是否位于弧的角跨越内。
 boolean equals(Object obj)
          确定指定的 Object 是否与此 Arc2D 相等。
abstract  double getAngleExtent()
          返回弧的角跨越。
abstract  double getAngleStart()
          返回弧的起始角度。
 int getArcType()
          返回弧的弧闭合类型:OPENCHORDPIE
 Rectangle2D getBounds2D()
          返回弧的高精度窗体矩形。
 Point2D getEndPoint()
          返回弧的结束点。
 PathIterator getPathIterator(AffineTransform at)
          返回定义弧边界的迭代对象。
 Point2D getStartPoint()
          返回弧的起始点。
 int hashCode()
          返回此 Arc2D 的哈希码。
 boolean intersects(double x, double y, double w, double h)
          确定弧的内部与指定矩形的内部是否相交。
protected abstract  Rectangle2D makeBounds(double x, double y, double w, double h)
          构造一个适当精度的 Rectangle2D,以保存为此弧的窗体矩形计算出的参数。
abstract  void setAngleExtent(double angExt)
          将此弧的角跨越设置为指定的 double 值。
 void setAngles(double x1, double y1, double x2, double y2)
          使用两组坐标设置此弧的起始角度和角跨越。
 void setAngles(Point2D p1, Point2D p2)
          使用两个点设置此弧的起始角度和角跨越。
abstract  void setAngleStart(double angSt)
          将此弧的起始角度设置为指定的 double 值。
 void setAngleStart(Point2D p)
          将此弧的起始角度设置为由指定点定义、相对于此弧中心的角度。
 void setArc(Arc2D a)
          将此弧设置为与指定弧相同。
abstract  void setArc(double x, double y, double w, double h, double angSt, double angExt, int closure)
          将此弧的位置、大小、角跨越和闭合类型设置为指定的 double 值。
 void setArc(Point2D loc, Dimension2D size, double angSt, double angExt, int closure)
          将此弧的位置、大小、角跨越和闭合类型设置为指定值。
 void setArc(Rectangle2D rect, double angSt, double angExt, int closure)
          将此弧的位置、大小、角跨越和闭合类型设置为指定值。
 void setArcByCenter(double x, double y, double radius, double angSt, double angExt, int closure)
          将此弧的位置、边界、角跨越和闭合类型设置为指定值。
 void setArcByTangent(Point2D p1, Point2D p2, Point2D p3, double radius)
          将此弧的位置、边界和角跨越设置为指定值。
 void setArcType(int type)
          将此弧的闭合类型设置为指定值:OPENCHORDPIE
 void setFrame(double x, double y, double w, double h)
          将此 Shape 窗体矩形的位置和大小设置为指定的矩形值。
 
从类 java.awt.geom.RectangularShape 继承的方法
clone, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getPathIterator, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

OPEN

public static final int OPEN
闭合类型,用于不具有用来连接弧段两个端点的路径段的开弧。

从以下版本开始:
1.2
另请参见:
常量字段值

CHORD

public static final int CHORD
闭合类型,用于通过从弧段的起始点到弧段的结束点画一条直线来闭合的弧。

从以下版本开始:
1.2
另请参见:
常量字段值

PIE

public static final int PIE
闭合类型,用于通过从弧段的起始点到完整椭圆的中心,再从圆心到弧段的结束点画直线来闭合的弧。

从以下版本开始:
1.2
另请参见:
常量字段值
构造方法详细信息

Arc2D

protected Arc2D(int type)
这是一个不能直接实例化的抽象类。特定于类型的实现子类可用于实例化,并提供用于存储满足以下各种存取方法所需信息的多种格式。

参数:
type - 此弧的闭合类型:OPENCHORDPIE
从以下版本开始:
1.2
另请参见:
Arc2D.Float, Arc2D.Double
方法详细信息

getAngleStart

public abstract double getAngleStart()
返回弧的起始角度。

返回:
一个 double 值,表示弧的起始角度(以度数表示)。
从以下版本开始:
1.2
另请参见:
setAngleStart(double)

getAngleExtent

public abstract double getAngleExtent()
返回弧的角跨越。

返回:
一个 double 值,表示弧的角跨越(以度数表示)。
从以下版本开始:
1.2
另请参见:
setAngleExtent(double)

getArcType

public int getArcType()
返回弧的弧闭合类型:OPENCHORDPIE

返回:
在此类中定义的整数常量闭合类型之一。
从以下版本开始:
1.2
另请参见:
setArcType(int)

getStartPoint

public Point2D getStartPoint()
返回弧的起始点。此点是起始角度定义的中心发出的射线与弧椭圆边界的交点。

返回:
一个 Point2D 对象,表示弧起始点的 x、y 坐标。
从以下版本开始:
1.2

getEndPoint

public Point2D getEndPoint()
返回弧的结束点。此点是起始角度加上弧的角跨越所定义的中心发出的射线与弧椭圆边界的交点。

返回:
一个 Point2D 对象,表示弧结束点的 x、y 坐标。
从以下版本开始:
1.2

setArc

public abstract void setArc(double x,
                            double y,
                            double w,
                            double h,
                            double angSt,
                            double angExt,
                            int closure)
将此弧的位置、大小、角跨越和闭合类型设置为指定的 double 值。

参数:
x - 弧的左上角的 X 坐标。
y - 弧的左上角的 Y 坐标。
w - 完整椭圆的总宽度,此弧是该椭圆的一部分。
h - 完整椭圆的总高度,此弧是该椭圆的一部分。
angSt - 弧的起始角度(以度数表示)。
angExt - 弧的角跨越(以度数表示)。
closure - 弧的闭合类型:OPENCHORDPIE
从以下版本开始:
1.2

setArc

public void setArc(Point2D loc,
                   Dimension2D size,
                   double angSt,
                   double angExt,
                   int closure)
将此弧的位置、大小、角跨越和闭合类型设置为指定值。

参数:
loc - 表示弧的左上角坐标的 Point2D
size - 表示完整椭圆宽度和高度的 Dimension2D,此弧是该椭圆的一部分。
angSt - 弧的起始角度(以度数表示)。
angExt - 弧的角跨越(以度数表示)。
closure - 弧的闭合类型:OPENCHORDPIE
从以下版本开始:
1.2

setArc

public void setArc(Rectangle2D rect,
                   double angSt,
                   double angExt,
                   int closure)
将此弧的位置、大小、角跨越和闭合类型设置为指定值。

参数:
rect - 定义完整椭圆外部边界的窗体矩形,此弧是该椭圆的一部分。
angSt - 弧的起始角度(以度数表示)。
angExt - 弧的角跨越(以度数表示)。
closure - 弧的闭合类型:OPENCHORDPIE
从以下版本开始:
1.2

setArc

public void setArc(Arc2D a)
将此弧设置为与指定弧相同。

参数:
a - 用于设置弧值的 Arc2D
从以下版本开始:
1.2

setArcByCenter

public void setArcByCenter(double x,
                           double y,
                           double radius,
                           double angSt,
                           double angExt,
                           int closure)
将此弧的位置、边界、角跨越和闭合类型设置为指定值。弧是由中心点和半径(而不是完整椭圆的窗体矩形)定义的。

参数:
x - 弧中心的 X 坐标。
y - 弧中心的 Y 坐标。
radius - 弧的半径。
angSt - 弧的起始角度(以度数表示)。
angExt - 弧的角跨越(以度数表示)。
closure - 弧的闭合类型:OPENCHORDPIE
从以下版本开始:
1.2

setArcByTangent

public void setArcByTangent(Point2D p1,
                            Point2D p2,
                            Point2D p3,
                            double radius)
将此弧的位置、边界和角跨越设置为指定值。弧的起始角度是点 (p1, p2) 指定的线的正切,结束角度是点 (p2, p3) 指定的线的正切,弧还具有指定的半径。

参数:
p1 - 定义弧的第一个点。弧的起始角度是点 (p1, p2) 指定的线的正切。
p2 - 定义弧的第二个点。弧的起始角度是点 (p1, p2) 指定的线的正切。弧的结束角度是点 (p2, p3) 指定的线的正切。
p3 - 定义弧的第三个点。弧的结束角度是点 (p2, p3) 指定的线的正切。
radius - 弧的半径。
从以下版本开始:
1.2

setAngleStart

public abstract void setAngleStart(double angSt)
将此弧的起始角度设置为指定的 double 值。

参数:
angSt - 弧的起始角度(以度数表示)。
从以下版本开始:
1.2
另请参见:
getAngleStart()

setAngleExtent

public abstract void setAngleExtent(double angExt)
将此弧的角跨越设置为指定的 double 值。

参数:
angExt - 弧的角跨越(以度数表示)。
从以下版本开始:
1.2
另请参见:
getAngleExtent()

setAngleStart

public void setAngleStart(Point2D p)
将此弧的起始角度设置为由指定点定义、相对于此弧中心的角度。弧的角跨越将保持不变。

参数:
p - 定义起始角度的 Point2D
从以下版本开始:
1.2
另请参见:
getAngleStart()

setAngles

public void setAngles(double x1,
                      double y1,
                      double x2,
                      double y2)
使用两组坐标设置此弧的起始角度和角跨越。第一组坐标用于确定相对于弧中心起始点的角度。第二组坐标用于确定相对于弧中心结束点的角度。弧始终是非空的,按逆时针方向以弧形从第一点延伸到第二点。

参数:
x1 - 弧起始点的 X 坐标。
y1 - 弧起始点的 Y 坐标。
x2 - 弧结束点的 X 坐标。
y2 - 弧结束点的 Y 坐标。
从以下版本开始:
1.2

setAngles

public void setAngles(Point2D p1,
                      Point2D p2)
使用两个点设置此弧的起始角度和角跨越。第一点用于确定相对于弧中心起始点的角度。第二点用于确定相对于弧中心结束点的角度。弧始终是非空的,按逆时针方向以弧形从第一点延伸到第二点。

参数:
p1 - 定义弧起始点的 Point2D
p2 - 定义弧结束点的 Point2D
从以下版本开始:
1.2

setArcType

public void setArcType(int type)
将此弧的闭合类型设置为指定值:OPENCHORDPIE

参数:
type - 表示此弧闭合类型的整数常量:OPENCHORDPIE
抛出:
IllegalArgumentException - 如果 type 不是 0、1 或 2。
从以下版本开始:
1.2
另请参见:
getArcType()

setFrame

public void setFrame(double x,
                     double y,
                     double w,
                     double h)
将此 Shape 窗体矩形的位置和大小设置为指定的矩形值。 注意,该弧部分内切于RectangularShape 的窗体矩形。

指定者:
RectangularShape 中的 setFrame
参数:
x - 指定矩形左上角的 X 坐标
y - 指定矩形左上角的 Y 坐标
w - 指定矩形的宽度
h - 指定矩形的高度
从以下版本开始:
1.2
另请参见:
RectangularShape.getFrame()

getBounds2D

public Rectangle2D getBounds2D()
返回弧的高精度窗体矩形。该窗体矩形仅包含此 Arc2D 的一部分,即起始角度和结束角度之间的部分;如果此 Arc2D 的闭合类型为 PIE,则还包含扇形边。

此方法不同于 getBoundsgetBounds 方法仅返回此 Arc2D 封闭椭圆的边界,而不考虑此 Arc2D 的起始角度和结束角度。

返回:
表示弧的窗体矩形的 Rectangle2D
从以下版本开始:
1.2
另请参见:
Shape.getBounds()

makeBounds

protected abstract Rectangle2D makeBounds(double x,
                                          double y,
                                          double w,
                                          double h)
构造一个适当精度的 Rectangle2D,以保存为此弧的窗体矩形计算出的参数。

参数:
x - 窗体矩形左上角的 X 坐标。
y - 窗体矩形左上角的 Y 坐标。
w - 窗体矩形的宽度。
h - 窗体矩形的高度。
返回:
作为此弧窗体矩形的 Rectangle2D
从以下版本开始:
1.2

containsAngle

public boolean containsAngle(double angle)
确定指定的角度是否位于弧的角跨越内。

参数:
angle - 要测试的角度。
返回:
如果弧包含角度,则返回 true;如果弧不包含角度,则返回 false
从以下版本开始:
1.2

contains

public boolean contains(double x,
                        double y)
确定指定的点是否位于弧的边界内。

参数:
x - 要测试的点的 X 坐标。
y - 要测试的点的 Y 坐标。
返回:
如果点位于弧的边界内,则返回 true;如果点位于弧的边界外,则返回 false
从以下版本开始:
1.2

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
确定弧的内部与指定矩形的内部是否相交。

参数:
x - 矩形左上角的 X 坐标。
y - 矩形左上角的 Y 坐标。
w - 矩形的宽度。
h - 矩形的高度。
返回:
如果弧与矩形相交,则返回 true;如果弧与矩形不相交,则返回 false
从以下版本开始:
1.2
另请参见:
Area

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
确定弧的内部是否完全包含指定的矩形。

参数:
x - 矩形左上角的 X 坐标。
y - 矩形左上角的 Y 坐标。
w - 矩形的宽度。
h - 矩形的高度。
返回:
如果弧包含矩形,则返回 true;如果弧不包含矩形,则返回 false
从以下版本开始:
1.2
另请参见:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
确定弧的内部是否完全包含指定的矩形。

指定者:
接口 Shape 中的 contains
覆盖:
RectangularShape 中的 contains
参数:
r - 要测试的 Rectangle2D
返回:
如果弧包含矩形,则返回 true;如果弧不包含矩形,则返回 false
从以下版本开始:
1.2
另请参见:
Shape.contains(double, double, double, double)

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回定义弧边界的迭代对象。此迭代器是多线程安全的。Arc2D 保证对弧几何形状的修改不影响该几何形状任何进行中的迭代。

参数:
at - 可选的 AffineTransform,应用于迭代中返回的坐标;如果需要未转换的坐标,则为 null。
返回:
定义弧边界的 PathIterator
从以下版本开始:
1.2

hashCode

public int hashCode()
返回此 Arc2D 的哈希码。

覆盖:
Object 中的 hashCode
返回:
Arc2D 的哈希码。
从以下版本开始:
1.6
另请参见:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
确定指定的 Object 是否与此 Arc2D 相等。如果该对象是一个 Arc2D 实例,并且其位置、大小、弧度跨越和类型与此 Arc2D 相同,则指定的 Object 与此 Arc2D 相等。

覆盖:
Object 中的 equals
参数:
obj - 要与此 Arc2D 进行比较的 Object
返回:
如果 obj 是一个 Arc2D 实例并且具有相同的值,则返回 true;否则返回 false
从以下版本开始:
1.6
另请参见:
Object.hashCode(), Hashtable

JavaTM Platform
Standard Ed. 6

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

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