Java教程-JavaFX 3D

JavaFX 3D
JavaFX使我们能够创建三维形状。在javafx.scene.shape包中定义了一些类,它们提供了处理三维形状的所有方法。这些类包括Box、Cylinder和Sphere。包javafx.scene.shape中的Shape3D类是javafx中所有三维形状类的基类。
什么是3D形状?
三维形状可以定义为在XYZ坐标系上绘制的实体几何对象。3D形状与2D形状不同,因为3D形状始终需要一个额外的坐标值Z才能在坐标系上绘制。 3D形状的例子包括圆柱体、球体、盒子、立方体、金字塔等。然而,JavaFX提供了创建球体、圆柱体和盒子的类。
JavaFX中的3D形状类型
在JavaFX中,3D形状可以分为两种不同的类型:
预定义的3D形状
JavaFX提供了一些预定义的3D形状类,如圆柱体(Cylinder)、球体(Sphere)和盒子(Box)。我们只需实例化这些类就可以在屏幕上创建这些形状。这些类包含了创建适当形状所需的各种属性和方法。
用户自定义的3D形状
JavaFX提供了一个名为javafx.scene.shape.TriangleMesh的类,它继承了抽象类javafx.scene.shape.Mesh。这个类使用户能够定义自己的点、纹理坐标和面作为类的属性。
在JavaFX中创建3D形状的步骤
正如前面提到的,在JavaFX中针对不同的3D形状有不同的类。我们只需实例化这些类就可以创建适当的3D形状。按照以下步骤创建JavaFX中的3D形状。
实例化要创建的相应3D形状类,例如:
Box box = new Box();
为类设置属性。例如:
box.setHeight(100.0); box.setDepth(50.0); box.setWidth(70.0);
为场景设置相机。虽然设置相机以创建3D效果并不是必需的,但它为相机视图提供了一定的位置。可以按以下方式完成:
PerspectiveCamera camera = new PerspectiveCamera(); camera.setTranslateX(100.0); camera.setTranslateY(50.0); camera.setTranslateZ(-90); scene.setCamera(camera)
将盒子添加到场景图,并为场景和舞台设置适当的属性。
Group root = new Group(); root.getChildren().add(box); Scene scene = new Scene(root,500,400); primaryStage.setScene(scene); primaryStage.setTitle("Box Example"); primaryStage.show();
包javafx.scene.shape提供的3D形状类在以下表中进行了描述。
序列号 | 形状 | 描述 |
---|---|---|
1 | 盒子 | 一般来说,盒子可以定义为所有面都是矩形的三维形状。Box 的三个维度是高度、宽度和深度。在 JavaFX 中,类 javafx.scene.shape.Box表示 Box。 |
2 | 圆柱 | 圆柱体可以定义为具有两个由曲面连接的平行圆形基体的三维实体。它具有两个主要属性,即半径和高度。在 JavaFX 中,类javafx.scene.shape.Cylinder表示圆柱体。 |
3 | 领域 | 球体可以定义为完美的圆形实体 3D 对象。在 JavaFX 中,Sphere 由类javafx.scene.shape.Sphere表示。 |