返回介绍

java.awt.geom 类 Arc2D

发布于 2019-10-04 09:50:23 字数 21224 浏览 799 评论 0 收藏 0

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

public abstract class Arc2D
extends RectangularShape
 

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

边界矩形定义一个完整椭圆(此弧是其一部分)的外部边界。角度是相对于边界矩形的非正方形区域指定的,这样 45 度角总是落在椭圆中心到边界矩形右上角的连线上。因此,如果边界矩形沿一条轴的长度远长于沿另一条轴的长度,则到弧段的起始点和结束点的角度将沿边界长轴会发生较大偏斜。

坐标的实际存储表示形式要靠子类来完成。


嵌套类摘要
staticclassArc2D.Double

此类定义以 double 精度指定的弧。

staticclassArc2D.Float

此类定义以 float 精度指定的弧。

字段摘要
staticintCHORD

该闭合类型针对通过从弧段的起始点到弧段的结束点画一条直线来闭合的弧。

staticintOPEN

该闭合类型针对不具有用来连接弧段两个端点的路径段的开弧。

staticintPIE

该闭合类型针对通过从弧段的起始点到完整椭圆的中心、再从圆心到弧段的结束点画直线来闭合的弧。

构造方法摘要
protectedArc2D(inttype)

这是一个不能直接实例化的抽象类。

方法摘要
booleancontains(doublex, doubley)

确定指定的点是否位于弧的边界内。

booleancontains(doublex, doubley, doublew, doubleh)

确定弧的内部是否完全包含指定的矩形。

booleancontains(Rectangle2Dr)

确定弧的内部是否完全包含指定的矩形。

booleancontainsAngle(doubleangle)

确定指定的角度是否位于弧的角跨越内。

abstract doublegetAngleExtent()

返回弧的角跨越。

abstract doublegetAngleStart()

返回弧的起始角度。

intgetArcType()

返回弧的弧闭合类型: OPENCHORDPIE

Rectangle2DgetBounds2D()

返回弧的高精度边界框。

Point2DgetEndPoint()

返回弧的结束点。

PathIteratorgetPathIterator(AffineTransformat)

返回定义弧边界的迭代对象。

Point2DgetStartPoint()

返回弧的起始点。

booleanintersects(doublex, doubley, doublew, doubleh)

确定弧的内部与指定矩形的内部是否相交。

protected abstract Rectangle2DmakeBounds(doublex, doubley, doublew, doubleh)

构造一个适当精度的 Rectangle2D ,以保存为作为此弧的边界框而计算出的参数。

abstract voidsetAngleExtent(doubleangExt)

将此弧的角跨越设置为指定的 double 值。

voidsetAngles(doublex1, doubley1, doublex2, doubley2)

使用两组坐标设置此弧的起始角度和角跨越。

voidsetAngles(Point2Dp1, Point2Dp2)

使用两个点设置此弧的起始角度和角跨越。

abstract voidsetAngleStart(doubleangSt)

将此弧的起始角度设置为指定的 double 值。

voidsetAngleStart(Point2Dp)

将此弧的起始角度设置为由指定点定义、相对于此弧的中心的角度。

voidsetArc(Arc2Da)

将此弧设置为与指定弧相同。

abstract voidsetArc(doublex, doubley, doublew, doubleh, doubleangSt, doubleangExt, intclosure)

将此弧的位置、大小、角跨越和闭合类型设置为指定的 double 值。

voidsetArc(Point2Dloc, Dimension2Dsize, doubleangSt, doubleangExt, intclosure)

将此弧的位置、大小、角跨越和闭合类型设置为指定值。

voidsetArc(Rectangle2Drect, doubleangSt, doubleangExt, intclosure)

将此弧的位置、大小、角跨越和闭合类型设置为指定值。

voidsetArcByCenter(doublex, doubley, doubleradius, doubleangSt, doubleangExt, intclosure)

将此弧的位置、边界、角跨越和闭合类型设置为指定值。

voidsetArcByTangent(Point2Dp1, Point2Dp2, Point2Dp3, doubleradius)

将此弧的位置、边界和角跨越设置为指定值。

voidsetArcType(inttype)

将此弧的闭合类型设置为指定值: OPENCHORDPIE

voidsetFrame(doublex, doubley, doublew, doubleh)

将此弧外部边界的位置和大小设置为指定值。

从类 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 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

字段详细信息

OPEN

public static final int OPEN
该闭合类型针对不具有用来连接弧段两个端点的路径段的开弧。
另请参见:
常量字段值

CHORD

public static final int CHORD
该闭合类型针对通过从弧段的起始点到弧段的结束点画一条直线来闭合的弧。
另请参见:
常量字段值

PIE

public static final int PIE
该闭合类型针对通过从弧段的起始点到完整椭圆的中心、再从圆心到弧段的结束点画直线来闭合的弧。
另请参见:
常量字段值

构造方法详细信息

Arc2D

protected Arc2D(inttype)
这是一个不能直接实例化的抽象类。特定于类型的实现子类可用于实例化,并提供用于存储满足以下各种存取器方法所需信息的许多格式。
参数:
type - 此弧的闭合类型: OPENCHORDPIE
另请参见:
Arc2D.Float , Arc2D.Double

方法详细信息

getAngleStart

public abstract double getAngleStart()
返回弧的起始角度。
返回:
一个 double 值,它表示弧的起始角度(以度数表示)。
另请参见:
setAngleStart(double)

getAngleExtent

public abstract double getAngleExtent()
返回弧的角跨越。
返回:
一个 double 值,它表示弧的角跨越(以度数表示)。
另请参见:
setAngleExtent(double)

getArcType

public int getArcType()
返回弧的弧闭合类型: OPENCHORDPIE
返回:
在此类中定义的整数常量闭合类型之一。
另请参见:
setArcType(int)

getStartPoint

public Point2D getStartPoint()
返回弧的起始点。此点是从由起始角度定义的中心发出的射线与弧的椭圆边界的交点。
返回:
Point2D 对象,它表示弧起始点的 x、y 坐标。

getEndPoint

public Point2D getEndPoint()
返回弧的结束点。此点是从由起始角度加上弧的角跨越所定义的中心发出的射线与弧的椭圆边界的交点。
返回:
Point2D 对象,它表示弧结束点的 x、y 坐标。

setArc

public abstract void setArc(doublex,
                            doubley,
                            doublew,
                            doubleh,
                            doubleangSt,
                            doubleangExt,
                            intclosure)
将此弧的位置、大小、角跨越和闭合类型设置为指定的 double 值。
参数:
x,y - 弧的左上角的坐标。
w - 完整椭圆的总宽度,此弧是该椭圆的一部分。
h - 完整椭圆的总高度,此弧是该椭圆的一部分。
angSt - 以度数表示的弧的起始角度。
angExt - 以度数表示的弧的角跨越。
closure - 弧的闭合类型: OPENCHORDPIE

setArc

public void setArc(Point2Dloc,
                   Dimension2Dsize,
                   doubleangSt,
                   doubleangExt,
                   intclosure)
将此弧的位置、大小、角跨越和闭合类型设置为指定值。
参数:
loc - 表示弧的左上角坐标的 Point2D
size - 表示完整椭圆宽度和高度的 Dimension2D ,此弧是该椭圆的一部分。
angSt - 以度数表示的弧的起始角度。(以 double 精度指定。)
angExt - 以度数表示的弧的角跨越。(以 double 精度指定。)
closure - 弧的闭合类型: OPENCHORDPIE

setArc

public void setArc(Rectangle2Drect,
                   doubleangSt,
                   doubleangExt,
                   intclosure)
将此弧的位置、大小、角跨越和闭合类型设置为指定值。
参数:
rect - 定义完整椭圆(此弧是其一个部分)外部边界的边界矩形。
angSt - 以度数表示的弧的起始角度。(以 double 精度指定。)
angExt - 以度数表示的弧的角跨越。(以 double 精度指定。)
closure - 弧的闭合类型: OPENCHORDPIE

setArc

public void setArc(Arc2Da)
将此弧设置为与指定弧相同。
参数:
a - 用于设置弧的值的 Arc2D

setArcByCenter

public void setArcByCenter(doublex,
                           doubley,
                           doubleradius,
                           doubleangSt,
                           doubleangExt,
                           intclosure)
将此弧的位置、边界、角跨越和闭合类型设置为指定值。弧是由中心点和半径(而不是完整椭圆的边界框)定义的。
参数:
x,y - 弧中心的坐标。(以 double 精度指定。)
radius - 弧的半径。(以 double 精度指定。)
angSt - 以度数表示的弧的起始角度。(以 double 精度指定。)
angExt - 以度数表示的弧的角跨越。(以 double 精度指定。)
closure - 弧的闭合类型: OPENCHORDPIE

setArcByTangent

public void setArcByTangent(Point2Dp1,
                            Point2Dp2,
                            Point2Dp3,
                            doubleradius)
将此弧的位置、边界和角跨越设置为指定值。弧的起始角度是点 (p1, p2) 指定的线的正切,结束角度是点 (p2, p3) 指定的线的正切,并且弧具有指定的半径。
参数:
p1 - 定义弧的第一个点。弧的起始角度是点 (p1, p2) 指定的线的正切。
p2 - 定义弧的第二个点。弧的起始角度是点 (p1, p2) 指定的线的正切。弧的结束角度是点 (p2, p3) 指定的线的正切。
p3 - 定义弧的第三个点。弧的结束角度是点 (p2, p3) 指定的线的正切。
radius - 弧的半径。(以 double 精度指定。)

setAngleStart

public abstract void setAngleStart(doubleangSt)
将此弧的起始角度设置为指定的 double 值。
参数:
angSt - 以度数表示的弧的起始角度。
另请参见:
getAngleStart()

setAngleExtent

public abstract void setAngleExtent(doubleangExt)
将此弧的角跨越设置为指定的 double 值。
参数:
angExt - 以度数表示的弧的角跨越。
另请参见:
getAngleExtent()

setAngleStart

public void setAngleStart(Point2Dp)
将此弧的起始角度设置为由指定点定义、相对于此弧的中心的角度。弧的角跨越与上述设置相同。
参数:
p - 定义起始角度的 Point2D
另请参见:
getAngleStart()

setAngles

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

setAngles

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

setArcType

public void setArcType(inttype)
将此弧的闭合类型设置为指定值: OPENCHORDPIE
参数:
type - 表示此弧闭合类型的整数常量: OPENCHORDPIE
抛出:
IllegalArgumentException - 如果 type 不是 0、1 或 2。
另请参见:
getArcType()

setFrame

public void setFrame(doublex,
                     doubley,
                     doublew,
                     doubleh)
将此弧外部边界的位置和大小设置为指定值。
指定者:
RectangularShape 中的 setFrame
参数:
x,y - 弧边界框左上角的坐标。(以 double 精度指定。)
w - 弧边界框的宽度。(以 double 精度指定。)
h - 弧边界框的高度。(以 double 精度指定。)
另请参见:
RectangularShape.getFrame()

getBounds2D

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

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

返回:
表示弧边界框的 Rectangle2D
另请参见:
Shape.getBounds()

makeBounds

protected abstract Rectangle2D makeBounds(doublex,
                                          doubley,
                                          doublew,
                                          doubleh)
构造一个适当精度的 Rectangle2D ,以保存为作为此弧的边界框而计算出的参数。
参数:
x,y - 边界框左上角的坐标。(以 double 精度指定。)
w - 边界框的宽度。(以 double 精度指定。)
h - 边界框的高度。(以 double 精度指定。)
返回:
作为此弧边界框的 Rectangle2D

containsAngle

public boolean containsAngle(doubleangle)
确定指定的角度是否位于弧的角跨越内。
参数:
angle - 要测试的角度。(以 double 精度指定。)
返回:
如果弧包含角度,则返回 true ;如果弧不包含角度,则返回 false

contains

public boolean contains(doublex,
                        doubley)
确定指定的点是否位于弧的边界内。
参数:
x,y - 要测试的点的坐标。(以 double 精度指定。)
返回:
如果点位于弧的边界内,则返回 true ;如果点位于弧的边界外,则返回 false

intersects

public boolean intersects(doublex,
                          doubley,
                          doublew,
                          doubleh)
确定弧的内部与指定矩形的内部是否相交。
参数:
x,y - 矩形左上角的坐标。(以 double 精度指定。)
w - 矩形的宽度。(以 double 精度指定。)
h - 矩形的高度。(以 double 精度指定。)
返回:
如果弧与矩形相交,则返回 true ;如果弧与矩形不相交,则返回 false
另请参见:
Area

contains

public boolean contains(doublex,
                        doubley,
                        doublew,
                        doubleh)
确定弧的内部是否完全包含指定的矩形。
参数:
x, y - 矩形左上角的坐标。(以 double 精度指定。)
w - 矩形的宽度。(以 double 精度指定。)
h - 矩形的高度。(以 double 精度指定。)
返回:
如果弧包含矩形,则返回 true ;如果弧不包含矩形,则返回 false
另请参见:
Area , Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2Dr)
确定弧的内部是否完全包含指定的矩形。
指定者:
接口 Shape 中的 contains
覆盖:
RectangularShape 中的 contains
参数:
r - 要测试的 Rectangle2D
返回:
如果弧包含矩形,则返回 true ;如果弧不包含矩形,则返回 false
另请参见:
Shape.contains(double, double, double, double)

getPathIterator

public PathIterator getPathIterator(AffineTransformat)
返回定义弧边界的迭代对象。此迭代器是多线程安全的。 Arc2D 保证对弧几何形状的修改不影响该几何形状任何进行中的迭代。
参数:
at - 可选的 AffineTransform ,应用于迭代中返回坐标,如果需要未转换的坐标,则为 null。
返回:
定义弧边界的 PathIterator

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文