Javafx 简明教程
JavaFX - 2D Shapes
在上一章中,我们看到了 JavaFX 的基本应用,其中我们学会了如何创建一个空窗口以及如何在 JavaFX 的 XY 平面上绘制线。除了线以外,我们还可以绘制其他一些 2D 形状。
2D Shape
通常,2D 形状是可以绘制在 XY 平面上的几何图形,包括线、矩形、圆等。
使用 JavaFX 库,你可以绘制:
-
预定义的形状,如线、矩形、圆、椭圆、多边形、折线、三次曲线、二次曲线、弧形。
-
路径元素,如移动路径元素、线、水平线、垂直线、三次曲线、二次曲线、弧形。
-
除此之外,你还可以通过解析 SVG 路径绘制 2D 形状。
每个上述 2D 形状均用一个类表示,所有这些类都属于包 javafx.scene.shape 。名为 Shape 的类是 JavaFX 中所有二维形状的基类。
Creating a 2D Shape in JavaFX
要创建图表,你需要:
-
实例化所需形状的相应类。
-
设置形状的属性。
-
将形状对象添加到组。
Instantiating the Respective Class
要创建 2 维度形状,首先你需要实例化其各自的类。例如,如果你要创建一个圆,你需要按如下方式实例化名为 Circle 的类:
Circle circle = new Circle();
Various 2D Shapes available in JavaFX
下表列出了 JavaFX 提供的各种形状(类)。
S.No |
Shape & Description |
1 |
Line 线是连接两个点的几何结构。包 javafx.scene.shape 的 Line 类在 XY 平面中表示一条线。 |
2 |
Rectangle 通常来说,矩形是一个四边形,它有两对平行且重合的边,所有内角都是直角。在 JavaFX 中,一个矩形由名为 Rectangle 的类表示。此类属于包 javafx.scene.shape 。 |
3 |
Rounded Rectangle 在 JavaFX 中,你可以绘制带锐角或带弧角的矩形,带弧角的矩形被称为圆角矩形。 |
4 |
Circle 圆是一条形成闭合环路的线,该环路上的每一点与中心点之间的距离都是固定的。在 JavaFX 中,一个圆由名为 Circle 的类表示。此类属于包 javafx.scene.shape 。 |
5 |
Ellipse 椭圆形由两个点定义,每个点都称为焦点。如果取椭圆上的任意一点,则到这两个焦点的距离之和是恒定的。这个椭圆的大小就是由这两个距离的总和来决定的。在 JavaFX 中,一个椭圆形由名为 Ellipse 的类表示。此类属于包 javafx.scene.shape 。 |
6 |
Polygon 由许多共面线段首尾相连而形成的闭合形状。在 JavaFX 中,一个多边形由名为 Polygon 的类表示。此类属于包 javafx.scene.shape 。 |
7 |
Polyline 折线与多边形相同,除了末尾的折线不是闭合的。或者说,连续线由一条或多条线段组成。在 JavaFX 中,一个折线由名为 Polygon 的类表示。此类属于包 javafx.scene.shape 。 |
8 |
Cubic Curve 三次曲线是在 XY 平面上的贝塞尔参数曲线,是 3 次曲线。在 JavaFX 中,一个三次曲线由名为 CubicCurve 的类表示。此类属于包 javafx.scene.shape 。 |
9 |
QuadCurve 二次曲线是在 XY 平面上的贝塞尔参数曲线,是 2 次曲线。在 JavaFX 中,一个二次曲线由名为 QuadCurve 的类表示。此类属于包 javafx.scene.shape 。 |
10 |
Arc 圆弧是曲线的一部分。在 JavaFX 中,一个圆弧由名为 Arc 的类表示。此类属于包 javafx.scene.shape 。 Types Of Arc 除此之外,我们可以绘制 3 种类型的圆弧 Open, Chord, Round 。 |
11 |
SVGPath 在 JavaFX 中,我们可以通过解析 SVG 路径来构造图像。此类形状由名为 SVGPath 的类表示。此类属于包 javafx.scene.shape 。此类有一个名为 content 的 String 数据类型属性。此属性表示要从中绘制图像的 SVG 路径编码字符串。 |
Properties of 2D Objects
对于所有 2 维度对象,你可以设置各种属性,如填充、描边、描边类型等。下一节将讨论 2D 对象的各种属性。
我们将在本教程的后面对这些属性进行详细了解。
Operations on 2D Objects
如果我们向一个组中添加多个形状,第一个形状就会被第二个形状重叠,如下所示。
除了转换(旋转、缩放、平移等)、过渡(动画),你还可以对 2D 对象执行三种操作:即 - Union, Subtraction 和 Intersection 。
-
Union Operation: 此操作将两个或更多形状作为输入,并返回它们占据的区域。
-
Intersection Operation: 此操作将两个或更多形状作为输入,并返回它们之间的交集区域。
-
Subtraction Operation: 此操作将两个或更多形状作为输入。然后,它返回第一个形状的区域,但不包括被第二个形状重叠的区域。