Javafx-2dshapes-quadcurveto

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

2D Shapes PathElement 2次曲線

パス要素の2次曲線は、現在の位置から指定された座標のポイントに* 2次曲線*を描くために使用されます。

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

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

  • setX -現在の位置から曲線が描画されるポイントのx座標。
  • setY -現在の位置から曲線が描画されるポイントのy座標。
  • controlX -曲線の制御点のx座標。
  • controlY -曲線の制御点のy座標。

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

QuadCurveTo quadcurve = new QuadCurveTo(X, Y, controlX, controlY);

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

setX(value);
setY(value);
setControlX(value);
setControlY(value);

PathElement二次曲線を描く手順

JavaFXで現在の位置から指定したポイントに2次曲線を描くには、以下の手順に従います。

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

Javaクラスを作成し、パッケージ javafx.application のApplicationクラスを継承し、次のようにこのクラスの* 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:クラスQuadCurveToのオブジェクトの作成

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

//Creating an object of the class QuadCurveTo
QuadCurveTo quadCurveTo = new QuadCurveTo()

手順5:プロパティを2次曲線要素に設定する

現在の位置から2次曲線を描画するポイントの座標を指定します。 次に、プロパティx、y、controlx、controlY、およびコントロールポイントの座標を、以下に示すようにセッターメソッドで設定する必要があります。

//Setting properties of the class QuadCurve
quadCurveTo.setX(500.0f);
quadCurveTo.setY(220.0f);
quadCurveTo.setControlX(250.0f);
quadCurveTo.setControlY(0.0f);

手順6:パスクラスの監視可能なリストに要素を追加する

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

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

ステップ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 という名前のクラスを使用して、現在のポイントから指定された位置まで2次曲線を描くプログラムです。 このコードを QuadCurveToExample.java という名前のファイルに保存します。

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

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

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

     //Instantiating the class QuadCurve
      QuadCurveTo quadCurveTo = new QuadCurveTo();

     //Setting properties of the class QuadCurve
      quadCurveTo.setX(500.0f);
      quadCurveTo.setY(220.0f);
      quadCurveTo.setControlX(250.0f);
      quadCurveTo.setControlY(0.0f);

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

     //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 a cubic through a specified 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 QuadCurveToExample.java
java QuadCurveToExample

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

二次曲線の描画