JavaFX 3D形状 Shape3D
JavaFX 使我们能够创建三维形状。javafx.scene.shape包中定义了一些类,它提供了处理 3D 形状的所有方法。这些类是 Box、Cylinder 和 Sphere。类一个Shape3D包的javafx.scene.shape是基类中的JavaFX的所有的3D形状类。
1 什么是3D形状?
三维形状可以定义为要在 XYZ 坐标系上绘制的实体几何对象。3D 形状与 2D 形状的不同之处在于,3D 形状总是需要具有额外的坐标值Z才能在坐标系上绘制。
3D 形状的示例是圆柱体、球体、长方体、立方体、棱锥体等。但是,JavaFX 提供了用于创建球体、圆柱体和长方体的类。
2 JavaFX 中的 3D 形状类型
在 JavaFX 中,3D 形状可以分为两种不同的类型:
2.1. 预定义的 3D 形状
JavaFX 提供了一些预定义的 3D 形状类,它们是 Cylinder、Sphere 和 Box。我们只需要实例化这些类即可在屏幕上创建这些形状。这些类包含创建适当形状所需的各种属性和方法。
2.2. 用户定义的 3D 形状
JavaFX 提供了类javafx.scene.shape.TriangleMesh,它扩展了抽象类javafx.scene.shape.Mesh。这个类方便用户定义自己的点、纹理坐标和面作为类的属性
3 在 JavaFX 中创建 3D 形状的步骤
正如我们之前提到的,JavaFX 中的不同 3D 形状有不同的类。我们只需要实例化这些类即可创建适当的 3D 形状。使用以下步骤在 JavaFX 中创建 3D 形状。
1、实例化我们要创建的各自的3D形状类,例如
Box box = new Box();
2、设置类的属性。例如
box.setHeight(100.0);
box.setDepth(50.0);
box.setWidth(70.0);
3、为场景设置相机。虽然不需要设置相机来创建 3D 效果,但它为相机视图提供了一定的位置。这可以按如下方式完成。
PerspectiveCamera camera = new PerspectiveCamera();
camera.setTranslateX(100.0);
camera.setTranslateY(50.0);
camera.setTranslateZ(-90);
scene.setCamera(camera)
4、将框添加到场景图并为场景和舞台设置适当的属性。
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 形状类。
形状 | 描述 |
---|---|
Box(盒子) | 一般来说,一个盒子可以被定义为一个所有面都是矩形的三维形状。Box 的三个维度是高度、宽度和深度。在 JavaFX 中,类javafx.scene.shape.Box 代表Box。 |
Cylinder(圆柱体) | 圆柱体可以定义为具有两个平行圆形基础的三维立体,通过曲面连接。它有两个主要属性,即半径和高度。在 JavaFX 中,类javafx.scene.shape.Cylinder表示圆柱体。 |
Sphere(球体) | 球体可以定义为完美的圆形实体 3D 对象。在 JavaFX 中,Sphere 由类javafx.scene.shape.Sphere表示。 |
热门文章
优秀文章