Javafx-2dshapes-cubiccurveto
2Dシェイプパス要素のキュービックカーブ
パス要素の3次曲線は、現在の位置から指定された座標内の点に* 3次曲線*を描くために使用されます。
*CubicCurveTo* という名前のクラスで表されます。 このクラスは、パッケージ *javafx.scene.shape* に属します。
このクラスには、doubleデータ型の6つのプロパティがあります-
- setX -現在の位置から曲線が描画されるポイントのx座標。
- setX -現在の位置から曲線が描画されるポイントのy座標。
- controlX1 -曲線の1 ^ st ^制御点のx座標。
- controlY1 -曲線の1 ^ st ^制御点のy座標。
- controlX2 -曲線の2 ^ nd ^制御点のx座標。
- controlY2 -曲線の2 ^ nd ^制御点のy座標。
3次曲線を描くには、これらのプロパティに値を渡す必要があります。 これは、これらをこのクラスのコンストラクターに渡すことで実行できます。 これらは、以下に示すように、インスタンス化の時点と同じ順序である必要があります-
CubicCurveTo cubiccurve = new CubicCurveTo(
X, Y, controlX1, controlY1, controlX2, controlY2);
または、以下に示すように、それぞれのセッターメソッドを使用して-
setX(value);
setY(value);
setControlX1(value);
setControlY1(value);
setControlX2(value);
setControlY2(value);
PathElement Cubic Curveを描画する手順
JavaFXで現在の位置から指定されたポイントに3次曲線を描くには、以下の手順に従います。
ステップ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:CubicCurveToクラスのオブジェクトの作成
以下に示すように、パッケージ javafx.scene.shape に属するCubicCurveToというクラスをインスタンス化して、パス要素の2次曲線を作成します-
//Creating an object of the class CubicCurveTo
CubicCurveTo cubicCurveTo= new CubicCurveTo ();
手順5:プロパティを3次曲線要素に設定する
現在の位置から3次曲線を描画するポイントの座標を指定します。 次に、プロパティx、y、controlX1、controlY1、controlX2、controlY2、およびコントロールポイントの座標を、以下に示すようにセッターメソッドで設定する必要があります。
//Setting properties of the class CubicCurve
cubicCurveTo.setControlX1(400.0f);
cubicCurveTo.setControlY1(40.0f);
cubicCurveTo.setControlX2(175.0f);
cubicCurveTo.setControlY2(250.0f);
cubicCurveTo.setX(500.0f);
cubicCurveTo.setY(150.0f);
ステップ6:パスクラスの観察可能なリストに要素を追加する
前の手順で作成したパス要素→ MoveTo および CubicCurveTo を、次のように 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 という名前のクラスを使用して、現在のポイントから指定された位置まで3次曲線を描くプログラムです。 このコードを CubicCurveToExample.java という名前のファイルに保存します。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.CubicCurveTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
public class CubicCurveToExample 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 CubicCurve
CubicCurveTo cubicCurveTo = new CubicCurveTo();
//Setting properties of the class CubicCurve
cubicCurveTo.setControlX1(400.0f);
cubicCurveTo.setControlY1(40.0f);
cubicCurveTo.setControlX2(175.0f);
cubicCurveTo.setControlY2(250.0f);
cubicCurveTo.setX(500.0f);
cubicCurveTo.setY(150.0f);
//Adding the path elements to Observable list of the Path class
path.getElements().add(moveTo);
path.getElements().add(cubicCurveTo);
//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 CubicCurveToExample.java
java CubicCurveToExample
実行時に、上記のプログラムは3次曲線を表示するJavaFXウィンドウを生成します。 以下に示すように、これは現在の位置から指定されたポイントまで描画されます。