JavaFX - 创建长方体



长方体是一种三维立体形状。长方体由6个矩形组成,这些矩形以直角放置。如果长方体使用正方形面,则为立方体;如果面为矩形,则非立方体,看起来像鞋盒。

长方体是一个三维形状,具有(深度)、,如下面的图表所示:

Cuboid

在 JavaFX 中,这种三维形状被称为长方体;根据形状的尺寸,它可以是长方体或立方体。

JavaFX 中的长方体

在 JavaFX 中,三维长方体由名为Box的类表示。此类属于包javafx.scene.shape

通过实例化此类,您可以在 JavaFX 中创建一个 Box 节点。

此类具有3个双精度数据类型的属性,它们是:

  • width - 长方体的宽度。

  • height - 长方体的高度。

  • depth - 长方体的深度。

要绘制三次贝塞尔曲线,您需要通过将它们传递给此类的构造函数来为这些属性传递值。这必须在实例化时按相同的顺序进行;或者,使用它们各自的 setter 方法。

绘制三维长方体的步骤

要在 JavaFX 中绘制三维长方体,请按照以下步骤操作。

步骤 1:创建长方体

您可以通过实例化名为Box的类在 JavaFX 中创建一个长方体,该类属于包javafx.scene.shape。您可以在Application类的start()方法中实例化此类,如下所示。

public class ClassName extends Application {  
   @Override     
   public void start(Stage primaryStage) throws Exception {
      //Creating an object of the class Box 
      Box box = new Box();   
   }    
}

步骤 2:设置长方体的属性

使用各自的 setter 方法设置三维长方体的属性宽度、高度深度,如下面的代码块所示。

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

步骤 3:创建 Group 对象

start()方法中,通过实例化名为Group的类(属于包javafx.scene)来创建一个 group 对象。

将前面步骤中创建的 Box(节点)对象作为参数传递给 Group 类的构造函数。这样做是为了将其添加到组中,如下所示:

Group root = new Group(box);

步骤 4:启动应用程序

创建三维对象后,请按照以下步骤启动 JavaFX 应用程序:

  • 通过将 Group 对象作为参数值传递给其构造函数来实例化名为Scene的类。您还可以将应用程序屏幕的尺寸作为可选参数传递给构造函数。

  • 使用Stage类的setTitle()方法设置舞台的标题。

  • 使用名为Stage的类的setScene()方法将场景对象添加到舞台。

  • 使用名为show()的方法显示场景的内容。

  • 最后,应用程序在 Application 类中使用launch()方法启动。

示例

以下程序使用 JavaFX 生成一个三维长方体。将此代码保存在名为BoxExample.java的文件中。

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.shape.Box; 
import javafx.stage.Stage; 
         
public class BoxExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Box 
      Box box = new Box();  
      
      //Setting the properties of the Box 
      box.setWidth(200.0); 
      box.setHeight(400.0);   
      box.setDepth(200.0); 
         
      //Creating a Group object  
      Group root = new Group(box); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);   
      
      //Setting title to the Stage 
      stage.setTitle("Drawing a Box"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }
   public static void main(String args[]){ 
      launch(args); 
   } 
}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls BoxExample.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls BoxExample

输出

执行上述程序后,会生成一个 JavaFX 窗口,其中显示一个如下所示的三维长方体:

Drawing 3dBox

示例

在前面的示例中,我们没有指定绘制长方体的起始和结束坐标。但是,使用动画类的translateX和translateY属性,我们可以重新定位 JavaFX 应用程序上的长方体。让我们看看下面的示例,并将其保存在名为TranslateBoxExample.java的文件中。

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.shape.Box;
import javafx.scene.paint.Color;
import javafx.scene.transform.Translate;
import javafx.stage.Stage; 
         
public class TranslateBoxExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Box 
      Box box = new Box();  
      
      //Setting the properties of the Box 
      box.setWidth(200.0); 
      box.setHeight(200.0);  
      box.setDepth(200.0);

      Translate translate = new Translate();       
      translate.setX(200); 
      translate.setY(150); 
      translate.setZ(25); 
      
      box.getTransforms().addAll(translate);
	  
      //Creating a Group object  
      Group root = new Group(box); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 400, 300);
	  
      scene.setFill(Color.web("#81c483"));	  
      
      //Setting title to the Stage 
      stage.setTitle("Translate a Box"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }
   public static void main(String args[]){ 
      launch(args); 
   } 
}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls TranslateBoxExample.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls TranslateBoxExample

输出

执行上述程序后,会生成一个 JavaFX 窗口,其中显示一个如下所示的三维长方体。我们对场景进行了着色,以便区分长方体平移后的位置。

Drawing 3dBox
广告
© . All rights reserved.