Geometric Primitives
Java 2D API 提供了一组有用的标准形状,例如点,线,矩形,弧形,椭圆形和曲线。定义常见几何图元的最重要包是java.awt.geom
包。任意形状可以由直线几何图元的组合表示。
Shape
interface表示具有轮廓和内部的几何形状。此interface提供了一组用于描述和检查二维几何对象的泛型方法,并支持曲线段和多个子形状。 Graphics类仅支持直线段。 Shapeinterface可以支持曲线段。
有关如何绘制和填充形状的更多详细信息,请参见使用几何类。
Points
Point2D
类定义一个点,该点表示(x,y)坐标空间中的位置。 Java 2D API 中的术语“点”与像素不同。点没有面积,不包含颜色且无法渲染。
点用于创建其他形状。 Point2D
类还包括一种用于计算两个点之间的距离的方法。
Lines
Line2D
类是代表一行的抽象类。一条线的坐标可以检索为 Double 精度。 Line2D
类包含几种用于设置直线端点的方法。
您也可以使用下面介绍的GeneralPath
类创建直线段。
Rectangular Shapes
Rectangle2D
,RoundRectangle2D
,Arc2D
和Ellipse2D
Primitives 都是从RectangularShape
类派生的。此类定义Shape
对象的方法,这些方法可以通过矩形边界框来描述。 RectangularShape
对象的几何形状可以从完全包围Shape
轮廓的矩形中推断出来。
二次曲线和三次曲线
QuadCurve2D
使您可以创建二次参数曲线段。二次曲线由两个端点和一个控制点定义。
CubicCurve2D
类使您可以创建三次参数曲线段。三次曲线由两个端点和两个控制点定义。以下是二次曲线和三次曲线的示例。有关三次曲线和二次曲线的实现,请参见描边和填充图形基元。
该图表示二次曲线。
该图表示三次曲线。
Arbitrary Shapes
GeneralPath
类使您可以通过沿形状边界指定一系列位置来构造任意形状。这些位置可以通过线段,二次曲线或三次方(贝塞尔曲线)连接。可以使用三个线段和三次曲线创建以下形状。有关此形状的实现的更多信息,请参见描边和填充图形基元。
Areas
使用Area
类,可以对任意两个Shape
对象执行布尔运算,例如并集,交集和减法。这种技术通常称为“构造区域几何”,使您可以快速创建复杂的Shape
对象,而不必描述每个线段或曲线。