Javafx-2dshapes-arcto

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

2Dシェイプパス要素-アーク

パス要素 Arc は、現在の位置から指定された座標の点に弧を描くために使用されます。

*ArcTo* という名前のクラスで表されます。 このクラスは、パッケージ *javafx.scene.shape* に属します。

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

  • X -円弧の中心のx座標。
  • Y -円弧の中心のy座標。
  • radiusX -現在のアークが含まれる完全な楕円の幅。
  • radiusY -現在の円弧が含まれる完全な楕円の高さ。

パス要素の弧を描くには、これらのプロパティに値を渡す必要があります。これは、次のようにインスタンス化のときに、同じ順序でこのクラスのコンストラクタに値を渡すことで行うことができます-

ArcTo arcTo = new ArcTo(x, y, radius, radiusY);

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

setX(value);
setY(value);
setRadiusX(value);
setRadiusY(value);

PathElement Arcを描画する手順

JavaFXの現在の位置から指定されたポイントに円弧を描くには、以下の手順に従います。

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

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

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

ステップ2:パスクラスオブジェクトを作成する

次のコードブロックに示すように、パスクラスオブジェクトを作成します。

//Creating a Path object
Path path = new Path();

ステップ3:パスを作成する

*MoveTo* パス要素を作成し、XY座標を線の始点に設定して座標(100、150)にします。 これは、以下に示すように、クラス *MoveTo* のメソッド* setX()*および* setY()*を使用して実行できます。
//Moving to the starting point
MoveTo moveTo = new MoveTo();
moveTo.setX(100.0f);
moveTo.setY(150.0f);

ステップ4:クラスArcToのオブジェクトの作成

以下に示すように、パッケージ javafx.scene.shape に属するArcToという名前のクラスをインスタンス化して、パス要素の2次曲線を作成します-

//Creating an object of the class ArcTo
ArcTo arcTo = new ArcTo()

手順5:プロパティをArc要素に設定する

楕円の中心(この弧の一部)のx、y座標を指定します。 次に、以下に示すように、それぞれのセッターメソッドを使用して、半径X、半径Y、開始角度、およびアークの長さを指定できます。

//setting properties of the path element arc
arcTo.setX(300.0);
arcTo.setY(50.0);

arcTo.setRadiusX(50.0);
arcTo.setRadiusY(50.0);

ステップ6:パスクラスの観察可能なリストに要素を追加する

前の手順で作成したパス要素 MoveTo および arcTo を、次のように Path クラスの監視可能なリストに追加します-

//Adding the path elements to Observable list of the Path class
path.getElements().add(moveTo);
path.getElements().add(cubicCurveTo);

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

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

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

Group root = new Group(line);

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

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

ルートオブジェクトに加えて、次のようにグループクラスのオブジェクトと一緒に画面の高さと幅を表す2つの二重パラメータを渡すこともできます-

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

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

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

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

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

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

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

primaryStage.show();

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

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

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

以下は、JavaFXのクラスPathを使用して、現在の点から指定された位置に弧を描くプログラムです。 このコードを ArcExample.java という名前のファイルに保存します。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.ArcTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;

public class ArcExample extends Application {
   @Override
   public void start(Stage stage) {
     //Creating an object of the class Path
      Path path = new Path();

     //Moving to the starting point
      MoveTo moveTo = new MoveTo();
      moveTo.setX(250.0);
      moveTo.setY(250.0);

     //Instantiating the arcTo class
      ArcTo arcTo = new ArcTo();

     //setting properties of the path element arc
      arcTo.setX(300.0);
      arcTo.setY(50.0);

      arcTo.setRadiusX(50.0);
      arcTo.setRadiusY(50.0);

     //Adding the path elements to Observable list of the Path class
      path.getElements().add(moveTo);
      path.getElements().add(arcTo);

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

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

     //Setting title to the Stage
      stage.setTitle("Drawing an arc through a path");

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

上記のプログラムは、実行時に、アークを表示するJavaFXウィンドウを生成します。このウィンドウは、以下に示すように、現在位置から指定されたポイントまで描画されます。

アークパスの描画