java.lang.Object java.awt.geom.RectangularShape java.awt.geom.Arc2D
public abstract class Arc2D
Arc2D
是所有存储 2D 弧度的对象的抽象超类,其中 2D 弧度由窗体矩形、起始角度、角跨越(弧的长度)和闭合类型(OPEN
、CHORD
或 PIE
)定义。
弧度是其父 RectangularShape
窗体矩形内切完整椭圆的一部分。 角度是相对于非正方形的窗体矩形指定的,从而 45 度角总是落在椭圆中心到窗体矩形右上角的连线上。因此,如果窗体矩形沿一条轴的长度远长于沿另一条轴的长度,则弧段起始点和结束点间的角度将沿窗体长轴发生较大偏斜。
坐标的实际存储表示形式由子类决定。
嵌套类摘要 | |
---|---|
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() 返回弧的弧闭合类型: OPEN 、CHORD 或 PIE 。 |
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) 将此弧的闭合类型设置为指定值: OPEN 、CHORD 或 PIE 。 |
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 |
字段详细信息 |
---|
public static final int OPEN
public static final int CHORD
public static final int PIE
构造方法详细信息 |
---|
protected Arc2D(int type)
type
- 此弧的闭合类型:
OPEN
、
CHORD
或
PIE
。
Arc2D.Float
,
Arc2D.Double
方法详细信息 |
---|
public abstract double getAngleStart()
setAngleStart(double)
public abstract double getAngleExtent()
setAngleExtent(double)
public int getArcType()
OPEN
、
CHORD
或
PIE
。
setArcType(int)
public Point2D getStartPoint()
Point2D
对象,表示弧起始点的 x、y 坐标。
public Point2D getEndPoint()
Point2D
对象,表示弧结束点的 x、y 坐标。
public abstract void setArc(double x, double y, double w, double h, double angSt, double angExt, int closure)
public void setArc(Point2D loc, Dimension2D size, double angSt, double angExt, int closure)
public void setArc(Rectangle2D rect, double angSt, double angExt, int closure)
public void setArc(Arc2D a)
a
- 用于设置弧值的
Arc2D
。
public void setArcByCenter(double x, double y, double radius, double angSt, double angExt, int closure)
public void setArcByTangent(Point2D p1, Point2D p2, Point2D p3, double radius)
p1
- 定义弧的第一个点。弧的起始角度是点 (p1, p2) 指定的线的正切。
p2
- 定义弧的第二个点。弧的起始角度是点 (p1, p2) 指定的线的正切。弧的结束角度是点 (p2, p3) 指定的线的正切。
p3
- 定义弧的第三个点。弧的结束角度是点 (p2, p3) 指定的线的正切。
radius
- 弧的半径。
public abstract void setAngleStart(double angSt)
angSt
- 弧的起始角度(以度数表示)。
getAngleStart()
public abstract void setAngleExtent(double angExt)
angExt
- 弧的角跨越(以度数表示)。
getAngleExtent()
public void setAngleStart(Point2D p)
p
- 定义起始角度的
Point2D
。
getAngleStart()
public void setAngles(double x1, double y1, double x2, double y2)
x1
- 弧起始点的 X 坐标。
y1
- 弧起始点的 Y 坐标。
x2
- 弧结束点的 X 坐标。
y2
- 弧结束点的 Y 坐标。
public void setAngles(Point2D p1, Point2D p2)
p1
- 定义弧起始点的
Point2D
。
p2
- 定义弧结束点的
Point2D
。
public void setArcType(int type)
OPEN
、
CHORD
或
PIE
。
type
- 表示此弧闭合类型的整数常量:
OPEN
、
CHORD
或
PIE
。
IllegalArgumentException
- 如果
type
不是 0、1 或 2。
getArcType()
public void setFrame(double x, double y, double w, double h)
Shape
窗体矩形的位置和大小设置为指定的矩形值。 注意,该弧
部分内切于此
RectangularShape
的窗体矩形。
RectangularShape
中的
setFrame
x
- 指定矩形左上角的 X 坐标
y
- 指定矩形左上角的 Y 坐标
w
- 指定矩形的宽度
h
- 指定矩形的高度
RectangularShape.getFrame()
public Rectangle2D getBounds2D()
Arc2D
的一部分,即起始角度和结束角度之间的部分;如果此
Arc2D
的闭合类型为
PIE
,则还包含扇形边。
此方法不同于 getBounds
,getBounds
方法仅返回此 Arc2D
封闭椭圆的边界,而不考虑此 Arc2D
的起始角度和结束角度。
Rectangle2D
。
Shape.getBounds()
protected abstract Rectangle2D makeBounds(double x, double y, double w, double h)
Rectangle2D
,以保存为此弧的窗体矩形计算出的参数。
x
- 窗体矩形左上角的 X 坐标。
y
- 窗体矩形左上角的 Y 坐标。
w
- 窗体矩形的宽度。
h
- 窗体矩形的高度。
Rectangle2D
。
public boolean containsAngle(double angle)
angle
- 要测试的角度。
true
;如果弧不包含角度,则返回
false
。
public boolean contains(double x, double y)
x
- 要测试的点的 X 坐标。
y
- 要测试的点的 Y 坐标。
true
;如果点位于弧的边界外,则返回
false
。
public boolean intersects(double x, double y, double w, double h)
x
- 矩形左上角的 X 坐标。
y
- 矩形左上角的 Y 坐标。
w
- 矩形的宽度。
h
- 矩形的高度。
true
;如果弧与矩形不相交,则返回
false
。
Area
public boolean contains(double x, double y, double w, double h)
x
- 矩形左上角的 X 坐标。
y
- 矩形左上角的 Y 坐标。
w
- 矩形的宽度。
h
- 矩形的高度。
true
;如果弧不包含矩形,则返回
false
。
Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Shape
中的
contains
RectangularShape
中的
contains
r
- 要测试的
Rectangle2D
。
true
;如果弧不包含矩形,则返回
false
。
Shape.contains(double, double, double, double)
public PathIterator getPathIterator(AffineTransform at)
Arc2D
保证对弧几何形状的修改不影响该几何形状任何进行中的迭代。
at
- 可选的
AffineTransform
,应用于迭代中返回的坐标;如果需要未转换的坐标,则为 null。
PathIterator
。
public int hashCode()
Arc2D
的哈希码。
Arc2D
的哈希码。
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
Object
是否与此
Arc2D
相等。如果该对象是一个
Arc2D
实例,并且其位置、大小、弧度跨越和类型与此
Arc2D
相同,则指定的
Object
与此
Arc2D
相等。
obj
- 要与此
Arc2D
进行比较的
Object
。
obj
是一个
Arc2D
实例并且具有相同的值,则返回
true
;否则返回
false
。
Object.hashCode()
,
Hashtable