盒子是具有长度(深度),宽度和高度的三维形状。在JavaFX中,一个框由javafx.scene.shape.Box类表示。此类包含3个属性,它们是-
深度-这个属性代表了框的深度,你可以设定值使用该属性setDepth()方法。
height-此属性表示框的高度,您可以使用setHeight()方法将值设置为此属性。
width-此属性表示框的宽度,您可以使用setWidth()方法将值设置为此属性。
要创建3D盒子,您需要-
实例化此类。
使用setter方法或通过将其作为参数传递给构造函数来设置所需的属性。
将创建的节点(形状)添加到Group对象。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.PerspectiveCamera; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.paint.PhongMaterial; import javafx.stage.Stage; import javafx.scene.shape.Box; import javafx.scene.shape.CullFace; import javafx.scene.shape.DrawMode; public class DrawingBox extends Application { public void start(Stage stage) { //画一个盒子 Box cube = new Box(); //设置Box(cube)的属性 cube.setDepth(150.0); cube.setHeight(150.0); cube.setWidth(150.0); //设置其他属性 cube.setCullFace(CullFace.BACK); cube.setDrawMode(DrawMode.FILL); PhongMaterial material = new PhongMaterial(); material.setDiffuseColor(Color.BROWN); cube.setMaterial(material); //翻译盒子 cube.setTranslateX(300.0); cube.setTranslateY(150.0); cube.setTranslateZ(150.0); //设置透视相机 PerspectiveCamera cam = new PerspectiveCamera(); cam.setTranslateX(-150); cam.setTranslateY(25); cam.setTranslateZ(150); //设置场景 Group root = new Group(cube); Scene scene = new Scene(root, 595, 300, Color.BEIGE); scene.setCamera(cam); stage.setTitle("Drawing A Cube"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
输出结果