本文概述
JavaFX使我们能够创建三维形状。 javafx.scene.shape包中定义了一些类, 这些类提供了处理3D形状的所有方法。这样的类是Box, Cylinder和sphere。软件包javafx.scene.shape的Shape3D类是javafx中所有3D shape类的基类。
什么是3D形状?
可以将三维形状定义为要在XYZ坐标系上绘制的实体几何对象。 3D形状与2D形状的不同之处在于3D形状始终需要具有额外的坐标值Z才能在坐标系上绘制。
3D形状的示例包括圆柱体, 球体, 盒子, 立方体, 金字塔等。但是, JavaFX提供了一些类来创建球体, 圆柱体和盒子。
JavaFX中3D形状的类型
在JavaFX中, 可以将3D形状分为两种不同的类型,
1.预定义的3D形状
JavaFX提供了一些预定义的3D形状类, 例如Cylinder, Sphere和Box。我们只需要实例化这些类即可在屏幕上创建这些形状。这些类包含各种属性和方法, 这些属性和方法必须用于创建适当的形状。
2.用户定义的3D形状
JavaFX提供了javafx.scene.shape.TriangleMesh类, 该类扩展了抽象类javafx.scene.shape.Mesh。该类使用户可以将自己的点, 纹理坐标和面定义为该类的属性。
在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形状类。
序号 | 形状 | 描述 |
---|---|---|
1 | Box | 通常, 盒子可以被定义为具有所有面为矩形的三维形状。 Box的三个维度是高度, 宽度和深度。在JavaFX中, 类javafx.scene.shape.Box表示Box。 |
2 | Cylinder | 圆柱体可以定义为三维实体, 具有通过曲面连接的两个平行圆形基础。它具有两个主要属性, 即半径和高度。在JavaFX中, 类javafx.scene.shape.Cylinder表示圆柱体。 |
3 | Sphere | 球体可以定义为完美圆形的实体3D对象。在JavaFX中, Sphere由类javafx.scene.shape.Sphere表示。 |
评论前必须登录!
注册