这些Java教程是为JDK 8编写的。本页面描述的示例和实践不利用后续版本中引入的改进,可能使用已不再可用的技术。
有关Java SE 9及后续版本中更新的语言功能的摘要,请参阅Java语言变更。
有关所有JDK版本的新功能、增强功能和已删除或已弃用选项的信息,请参阅JDK发行说明。
Java 2D API提供了一组有用的标准形状,如点、线、矩形、弧线、椭圆和曲线。定义常见几何原语的最重要的包是java.awt.geom
包。任意形状可以由直线几何原语的组合表示。
Shape
接口表示一个几何形状,它有一个轮廓和一个内部。这个接口提供了一组用于描述和检查二维几何对象的常用方法,并支持曲线线段和多个子形状。Graphics
类仅支持直线段。而Shape
接口可以支持曲线线段。
有关如何绘制和填充形状的更多详细信息,请参见使用几何图形教程。
Point2D
类定义了一个表示在(x, y)坐标空间中的位置的点。在Java 2D API中,“点”一词与像素不同。一个点没有面积,不包含颜色,也无法呈现。
点用于创建其他形状。Point2D
类还包括一种计算两个点之间距离的方法。
Line2D
类是表示线段的抽象类。线段的坐标可以作为double类型进行检索。Line2D
类包括几种用于设置线段端点的方法。
您还可以使用下面描述的GeneralPath
类创建直线段。
Rectangle2D
、RoundRectangle2D
、Arc2D
和Ellipse2D
原语都是从RectangularShape
类派生的。该类定义了可以由矩形边界框描述的Shape
对象的方法。从完全包围Shape
轮廓的矩形中可以推断出RectangularShape
对象的几何形状。
QuadCurve2D
使您能够创建二次参数曲线段。二次曲线由两个端点和一个控制点定义。
CubicCurve2D
类使您能够创建三次参数曲线段。三次曲线由两个端点和两个控制点定义。以下是二次和三次曲线的示例。请参见描边和填充图形原语以了解三次和二次曲线的实现。
这个图形代表一个二次曲线。
这个图形代表一个三次曲线。
GeneralPath
类允许您通过指定沿形状边界的一系列位置来构建任意形状。这些位置可以通过直线段、二次曲线或三次(贝塞尔)曲线连接。下面的形状可以通过三个直线段和一个三次曲线创建。有关此形状的实现的更多信息,请参见描边和填充图形原语。
使用Area
类,您可以对任意两个Shape
对象执行布尔运算,例如并集、交集和差集。这种技术通常称为构造区域几何,可以快速创建复杂的Shape
对象,而无需描述每个线段或曲线。