Javafx-3dshape-cylinder

提供:Dev Guides
移動先:案内検索

JavaFX-3D形状シリンダー

シリンダーは、曲面で接続された2つの平行な(ほとんど円形の)ベースを持つ閉じたソリッドです。

次の図に示すように、それは2つのパラメータ、すなわち-円形ベースの*半径*とシリンダーの*高さ*によって記述されます-

シリンダー

JavaFXでは、シリンダーは Cylinder という名前のクラスで表されます。 このクラスは、パッケージ javafx.scene.shape に属します。 このクラスをインスタンス化することにより、JavaFXでシリンダーノードを作成できます。

このクラスには、doubleデータ型の2つのプロパティがあります-

  • height -シリンダーの高さ。
  • 半径-シリンダーの半径。

円柱を描画するには、このクラスのコンストラクターに値を渡すことにより、これらのプロパティに値を渡す必要があります。 これは、次のプログラムに示すように、インスタンス化時に同じ順序で行うことができます-

Cylinder cylinder = new Cylinder(radius, height);

または、次のようにそれぞれのセッターメソッドを使用して-

setRadius(value);
setHeight(value);

3Dシリンダーを描画する手順

JavaFXでシリンダー(3D)を描画するには、以下の手順に従います。

ステップ1:クラスを作成する

Javaクラスを作成し、パッケージ javafx.applicationApplication クラスを継承し、次のようにこのクラスの* start()*メソッドを実装します-

public class ClassName extends Application {
   @Override
   public void start(Stage primaryStage) throws Exception {
   }
}

ステップ2:シリンダーの作成

パッケージ javafx.scene.shape に属するCylinderというクラスをインスタンス化することにより、JavaFXでCylinderを作成できます。 次のようにこのクラスをインスタンス化できます-

//Creating an object of the Cylinder class
Cylinder cylinder = new Cylinder();

ステップ3:プロパティをシリンダーに設定する

以下に示すように、それぞれのセッターを使用して、シリンダーの*高さ*および*半径*を設定します。

//Setting the properties of the Cylinder
cylinder.setHeight(300.0f);
cylinder.setRadius(100.0f);

ステップ4:グループオブジェクトの作成

  • start()メソッドで、パッケージ *javafx.scene に属する Group という名前のクラスをインスタンス化して、グループオブジェクトを作成します。

前の手順で作成したCylinder(ノード)オブジェクトをパラメーターとしてGroupクラスのコンストラクターに渡します。 これは、次のようにグループに追加するために行う必要があります-

Group root = new Group(cylinder);

ステップ5:シーンオブジェクトの作成

パッケージ javafx.scene に属する Scene という名前のクラスをインスタンス化して、シーンを作成します。 このクラスに、前の手順で作成したGroupオブジェクト( root )を渡します。

ルートオブジェクトに加えて、画面の高さと幅を表す2つのdoubleパラメーターを、Groupクラスのオブジェクトとともに次のように渡すこともできます。

Scene scene = new Scene(group ,600, 300);

ステップ6:ステージのタイトルを設定する

*Stage* クラスの* setTitle()*メソッドを使用して、ステージにタイトルを設定できます。 この *primaryStage* はStageオブジェクトであり、シーンクラスのstartメソッドにパラメーターとして渡されます。
*primaryStage* オブジェクトを使用して、シーンのタイトルを次のように *Sample Application* として設定します。
primaryStage.setTitle("Sample Application");

ステップ7:シーンをステージに追加する

*Stage* という名前のクラスの* setScene()*メソッドを使用して、Sceneオブジェクトをステージに追加できます。 この方法を使用して、前の手順で準備したSceneオブジェクトを次のように追加します。
primaryStage.setScene(scene);

ステップ8:ステージのコンテンツを表示する

次のように Stage クラスの* show()*という名前のメソッドを使用して、シーンのコンテンツを表示します。

primaryStage.show();

ステップ9:アプリケーションの起動

次のように、メインメソッドから Application クラスの* launch()*静的メソッドを呼び出して、JavaFXアプリケーションを起動します。

public static void main(String args[]){
   launch(args);
}

次のプログラムは、JavaFXを使用してシリンダーを生成する方法を示しています。 このコードを CylinderExample.java という名前のファイルに保存します。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.CullFace;
import javafx.scene.shape.Cylinder;
import javafx.stage.Stage;

public class CylinderExample extends Application {
   @Override
   public void start(Stage stage) {
     //Drawing a Cylinder
      Cylinder cylinder = new Cylinder();

     //Setting the properties of the Cylinder
      cylinder.setHeight(300.0f);
      cylinder.setRadius(100.0f);

     //Creating a Group object
      Group root = new Group(cylinder);

     //Creating a scene object
      Scene scene = new Scene(root, 600, 300);

     //Setting title to the Stage
      stage.setTitle("Drawing a cylinder");

     //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 CylinderExample.java
java CylinderExample

実行すると、上記のプログラムは、以下に示すようにシリンダーを表示するJavaFXウィンドウを生成します。

3dCylinderの描画