java.lang.Object
java.awt.geom.RectangularShape
java.awt.geom.Arc2D
- 直接已知的子类:
-
Arc2D.Double
,Arc2D.Float
Arc2D
是所有存储由框架矩形、起始角度、角度范围(弧的长度)和闭合类型(OPEN
、CHORD
或PIE
)定义的2D弧的对象的抽象超类。
该弧是完整椭圆的部分截面,其内切于其父级的框架矩形 RectangularShape
。 角度是相对于非正方形框架矩形指定的,使得45度始终落在从椭圆中心到框架矩形右上角的线上。因此,如果框架矩形在一个轴上明显比另一个轴长,弧段的起始和结束角度将沿着框架的较长轴进一步倾斜。
坐标的实际存储表示留给子类。
- 自1.2版本起:
- 1.2
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
该类定义了以double
精度指定的弧。static class
该类定义了以float
精度指定的弧。 -
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
contains
(double x, double y) 确定指定点是否在弧的边界内部。boolean
contains
(double x, double y, double w, double h) 确定弧的内部是否完全包含指定的矩形。boolean
确定弧的内部是否完全包含指定的矩形。boolean
containsAngle
(double angle) 确定指定角度是否在弧的角度范围内。boolean
确定指定的Object
是否等于此Arc2D
。abstract double
返回弧的角度范围。abstract double
返回弧的起始角度。int
返回弧的高精度框架矩形。返回弧的结束点。返回定义弧边界的迭代对象。返回弧的起始点。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) 将此弧的角度范围设置为指定的双精度值。void
setAngles
(double x1, double y1, double x2, double y2) 使用两组坐标设置此弧的起始角度和角度范围。void
使用两个点设置此弧的起始角度和角度范围。abstract void
setAngleStart
(double angSt) 将此弧的起始角度设置为指定的双精度值。void
将此弧的起始角度设置为指定点相对于此弧中心定义的角度。abstract void
setArc
(double x, double y, double w, double h, double angSt, double angExt, int closure) 将此弧的位置、大小、角度范围和闭合类型设置为指定的双精度值。void
将此弧设置为与指定弧相同。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) 将此弧的闭合类型设置为指定值:OPEN
、CHORD
或PIE
。void
setFrame
(double x, double y, double w, double h) 将此Shape
的框架矩形的位置和大小设置为指定的矩形值。Methods declared in class 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
-
Field Details
-
OPEN
public static final int OPEN无路径段连接弧段两端的开放弧的闭合类型。- 自1.2版本起:
- 1.2
- 参见:
-
CHORD
public static final int CHORD通过从弧段的起始点到弧段的结束点绘制一条直线段来关闭弧的闭合类型。- 自1.2版本起:
- 1.2
- 参见:
-
PIE
public static final int PIE通过从弧段的起始点到完整椭圆的中心绘制直线段,然后从该点到弧段的结束点来关闭弧的闭合类型。- 自1.2版本起:
- 1.2
- 参见:
-
-
Constructor Details
-
Method Details
-
getAngleStart
public abstract double getAngleStart()返回弧的起始角度。- 返回:
- 代表弧的起始角度(以度为单位)的双精度值。
- 自1.2版本起:
- 1.2
- 参见:
-
getAngleExtent
public abstract double getAngleExtent()返回弧的角度范围。- 返回:
- 代表弧的角度范围(以度为单位)的双精度值。
- 自1.2版本起:
- 1.2
- 参见:
-
getArcType
public int getArcType()- 返回:
- 此类中定义的整数常量闭合类型之一。
- 自1.2版本起:
- 1.2
- 参见:
-
getStartPoint
返回弧的起始点。该点是由起始角度定义的中心射线与弧的椭圆边界的交点。- 返回:
-
代表弧的起始点的x、y坐标的
Point2D
对象。 - 自1.2版本起:
- 1.2
-
getEndPoint
返回弧的结束点。该点是由起始角度加上弧的角度范围定义的中心射线与弧的椭圆边界的交点。- 返回:
-
代表弧的结束点的x、y坐标的
Point2D
对象。 - 自1.2版本起:
- 1.2
-
setArc
public abstract void setArc(double x, double y, double w, double h, double angSt, double angExt, int closure) 将此弧的位置、大小、角度范围和闭合类型设置为指定的双精度值。 -
setArc
将此弧的位置、大小、角度范围和闭合类型设置为指定值。 -
setArc
将此弧的位置、大小、角度范围和闭合类型设置为指定值。 -
setArc
将此弧设置为与指定弧相同。- 参数:
-
a
- 用于设置弧值的Arc2D
。 - 自版本:
- 1.2
-
setArcByCenter
public void setArcByCenter(double x, double y, double radius, double angSt, double angExt, int closure) 将此弧的位置、边界、角度范围和闭合类型设置为指定值。该弧由中心点和半径定义,而不是完整椭圆的框架矩形。 -
setArcByTangent
将此弧的位置、边界和角度范围设置为指定值。弧的起始角度与由点(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) 将此弧的起始角度设置为指定的双精度值。- 参数:
-
angSt
- 弧的起始角度(以度为单位)。 - 自版本:
- 1.2
- 参见:
-
setAngleExtent
public abstract void setAngleExtent(double angExt) 将此弧的角度范围设置为指定的双精度值。- 参数:
-
angExt
- 弧的角度范围(以度为单位)。 - 自版本:
- 1.2
- 参见:
-
setAngleStart
将此弧的起始角度设置为指定点相对于此弧中心定义的角度。弧的角度范围将保持不变。- 参数:
-
p
- 定义起始角度的Point2D
。 - 自版本:
- 1.2
- 参见:
-
setAngles
public void setAngles(double x1, double y1, double x2, double y2) 使用两组坐标设置此弧的起始角度和角度范围。第一组坐标用于确定起始点相对于弧中心的角度。第二组坐标用于确定终点相对于弧中心的角度。弧始终是非空的,并且沿逆时针方向从第一个点绕到第二个点。- 参数:
-
x1
- 弧起始点的X坐标。 -
y1
- 弧起始点的Y坐标。 -
x2
- 弧结束点的X坐标。 -
y2
- 弧结束点的Y坐标。 - 自版本:
- 1.2
-
setAngles
使用两个点设置此弧的起始角度和角度范围。第一个点用于确定起始点相对于弧中心的角度。第二个点用于确定终点相对于弧中心的角度。弧始终是非空的,并且沿逆时针方向从第一个点绕到第二个点。- 参数:
-
p1
- 定义弧起始点的Point2D
。 -
p2
- 定义弧结束点的Point2D
。 - 自版本:
- 1.2
-
setArcType
public void setArcType(int type) 将此弧的闭合类型设置为指定值:OPEN
、CHORD
或PIE
。- 参数:
-
type
- 表示此弧的闭合类型的整数常量:OPEN
、CHORD
或PIE
。 - 抛出:
-
IllegalArgumentException
- 如果type
不是0、1或2。 - 自版本:
- 1.2
- 参见:
-
setFrame
public void setFrame(double x, double y, double w, double h) - 在类中指定:
-
setFrame
在类RectangularShape
- 参数:
-
x
- 指定矩形形状左上角的X坐标 -
y
- 指定矩形形状左上角的Y坐标 -
w
- 指定矩形形状的宽度 -
h
- 指定矩形形状的高度 - 自版本:
- 1.2
- 参见:
-
getBounds2D
返回弧的高精度框架矩形。框架矩形仅包含此Arc2D
中起始和结束角度之间的部分,并包含饼形楔形,如果此Arc2D
具有PIE
闭合类型。此方法与
getBounds
方法不同之处在于getBounds
方法仅返回此Arc2D
的包围椭圆的边界,而不考虑此Arc2D
的起始和结束角度。- 返回:
-
表示弧框架矩形的
Rectangle2D
。 - 自版本:
- 1.2
- 参见:
-
makeBounds
构造一个适当精度的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
- 参见:
-
contains
public boolean contains(double x, double y, double w, double h) 确定弧的内部是否完全包含指定的矩形。- 参数:
-
x
- 矩形左上角的X坐标。 -
y
- 矩形左上角的Y坐标。 -
w
- 矩形的宽度。 -
h
- 矩形的高度。 - 返回值:
-
如果弧包含矩形,则返回
true
,如果弧不包含矩形,则返回false
。 - 自版本:
- 1.2
- 参见:
-
contains
确定弧的内部是否完全包含指定的矩形。- 指定者:
-
contains
在接口Shape
- 覆盖:
-
contains
在类RectangularShape
- 参数:
-
r
- 要测试的Rectangle2D
。 - 返回值:
-
如果弧包含矩形,则返回
true
,如果弧不包含矩形,则返回false
。 - 自版本:
- 1.2
- 参见:
-
getPathIterator
返回定义弧边界的迭代对象。此迭代器是多线程安全的。Arc2D
保证对弧的几何形状的修改不会影响已经在进行中的几何形状的任何迭代。- 参数:
-
at
- 可选的AffineTransform
,用于在迭代返回坐标时应用,如果希望使用未转换的坐标,则为null。 - 返回值:
-
定义弧边界的
PathIterator
。 - 自版本:
- 1.2
-
hashCode
public int hashCode()返回此Arc2D
的哈希码。 -
equals
确定指定的Object
是否等于此Arc2D
。如果指定的Object
是Arc2D
的实例,并且其位置、大小、弧度和类型与此Arc2D
相同,则指定的Object
等于此Arc2D
。
-