Javafx 简明教程

JavaFX - 3D Shapes

在前面的章节中,我们已经了解如何在 JavaFX 应用程序中在 XY 平面中绘制二维图形。除了这些二维图形外,我们还可以使用 JavaFX 绘制其他几个三维图形。

3D Shape

总的来说,三维图形是在 XYZ 平面中可以绘制的几何图形。它们由两个或更多个维度定义,通常为长度、宽度和深度。JavaFX 支持的三维图形包括 Cylinder, SphereBox

以上提到的每个 3D 形状都由一个类表示,且所有这些类都属于包 javafx.scene.shape 。名为 Shape3D 的类是 JavaFX 中所有 3D 形状的基类。

Creating a 3D Shape

要创建一个 3D 形状,你需要:

  1. 实例化所需 3D 形状的相应类。

  2. 设置 3D 形状的属性。

  3. 将 3D 形状对象添加到组中。

Instantiating the Respective Class

要创建一个 3D 形状,首先需要实例化其相应类。例如,如果要创建一个 3D 盒子,你需要实例化名为 Box 的类,如下所示:

Box box = new Box();

Setting the Properties of the Shape

实例化该类后,你需要使用 setter 方法为该形状设置属性。

例如,要绘制一个 3D 盒子,你需要传递其宽度、高度和深度。你可以使用其各自的 setter 方法指定这些值,如下所示:

//Setting the properties of the Box
box.setWidth(200.0);
box.setHeight(400.0);
box.setDepth(200.0);

Adding the Shape Object to the Group

最后,你需要将形状的对象添加到组中,方法是将其作为构造函数的参数进行传递,如下所示。

//Creating a Group object
Group root = new Group(box);

下表提供了 JavaFX 提供的各种 3D 形状的列表。

S.No

Shape & Description

1

Box 长方体是一个三维形状,具有 length (深度)、 widthheight 。在 JavaFX 中,一个三维盒子由名为 Box 的类表示。此类属于包 javafx.scene.shape 。通过实例化此类,你可以在 JavaFX 中创建一个盒子节点。此类有 3 个 double 数据类型的属性,即: width - 盒子的宽度。 height - 盒子的高度。 depth - 盒子的深度。

2

Cylinder 圆柱体是一个封闭的实体,它有两个平行的(通常为圆形的)底面,由一个曲面连接。它由两个参数描述,即其圆形底面的 radius 和圆柱体的 height 。在 JavaFX 中,圆柱体由名为 Cylinder 的类表示。此类属于包 javafx.scene.shape 。通过实例化此类,你可以在 JavaFX 中创建一个圆柱体节点。此类有 2 个 double 数据类型的属性,即: height - 圆柱体的高度。 radius - 圆柱体的半径。

3

Sphere 球的定义是与 3D 空间中一个给定点距离均为 r 的点的集合。此距离 r 是球体的半径,而给定点是球体的中心。在 JavaFX 中,球体由名为 Sphere 的类表示。此类属于包 javafx.scene.shape 。通过实例化此类,你可以在 JavaFX 中创建一个球体节点。此类有一个名为 radius 的 double 数据类型的属性。它表示球体的半径。

Properties of 3D Objects

对于所有 3 维对象,你可以在 JavaFX 中设置各种属性。它们列在下面 −

我们将在本教程的后续章节讨论 3D 对象的属性。