Geometric Primitives

Java 2D API 提供了一组有用的标准形状,例如点,线,矩形,弧形,椭圆形和曲线。定义常见几何图元的最重要包是java.awt.geom包。任意形状可以由直线几何图元的组合表示。

Shapeinterface表示具有轮廓和内部的几何形状。此interface提供了一组用于描述和检查二维几何对象的泛型方法,并支持曲线段和多个子形状。 Graphics类仅支持直线段。 Shapeinterface可以支持曲线段。

有关如何绘制和填充形状的更多详细信息,请参见使用几何类。

Points

Point2D类定义一个点,该点表示(x,y)坐标空间中的位置。 Java 2D API 中的术语“点”与像素不同。点没有面积,不包含颜色且无法渲染。

点用于创建其他形状。 Point2D类还包括一种用于计算两个点之间的距离的方法。

Lines

Line2D类是代表一行的抽象类。一条线的坐标可以检索为 Double 精度。 Line2D类包含几种用于设置直线端点的方法。

您也可以使用下面介绍的GeneralPath类创建直线段。

Rectangular Shapes

Rectangle2DRoundRectangle2DArc2DEllipse2DPrimitives 都是从RectangularShape类派生的。此类定义Shape对象的方法,这些方法可以通过矩形边界框来描述。 RectangularShape对象的几何形状可以从完全包围Shape轮廓的矩形中推断出来。

Rectangular shape

二次曲线和三次曲线

QuadCurve2D使您可以创建二次参数曲线段。二次曲线由两个端点和一个控制点定义。

CubicCurve2D类使您可以创建三次参数曲线段。三次曲线由两个端点和两个控制点定义。以下是二次曲线和三次曲线的示例。有关三次曲线和二次曲线的实现,请参见描边和填充图形基元

该图表示二次曲线。

二次参数曲线

该图表示三次曲线。

三次参数曲线

Arbitrary Shapes

GeneralPath类使您可以通过沿形状边界指定一系列位置来构造任意形状。这些位置可以通过线段,二次曲线或三次方(贝塞尔曲线)连接。可以使用三个线段和三次曲线创建以下形状。有关此形状的实现的更多信息,请参见描边和填充图形基元

该图表示使用 GeneralPath 类创建的多边形

Areas

使用Area类,可以对任意两个Shape对象执行布尔运算,例如并集,交集和减法。这种技术通常称为“构造区域几何”,使您可以快速创建复杂的Shape对象,而不必描述每个线段或曲线。