Javafx-2dshapes-quad-curve
JavaFX-2Dシェイプクワッドカーブ
数学的には、2次曲線は、-y = ax ^ 2 ^ + bx + cのような2次関数によって記述される曲線です。
コンピュータグラフィックスでは、ベジェ曲線が使用されます。 これらはすべてのスケールで適度に滑らかに見えるパラメトリック曲線です。 これらのベジェ曲線は、XY平面上の点に基づいて描画されます。
2次曲線は、XY平面のベジェパラメトリック曲線であり、次数2の曲線です。 次の図に示すように、開始点、終了点、*制御点*の3点を使用して描画されます
JavaFXでは、QuadCurveは QuadCurve という名前のクラスで表されます。 このクラスは、パッケージ javafx.scene.shape に属します。
このクラスをインスタンス化することにより、JavaFXでQuadCurveノードを作成できます。
このクラスには、doubleデータ型の6つのプロパティがあります-
- startX -曲線の開始点のx座標。
- startY -曲線の始点のy座標。
- controlX -曲線の制御点のx座標。
- controlY -曲線の制御点のy座標。
- endX -曲線の終点のx座標。
- endY -曲線の終点のy座標。
QuadCurveを描画するには、これらのプロパティに値を渡す必要があります。 これは、次のように、インスタンス化の時点で、同じ順序でこのクラスのコンストラクタにそれらを渡すことによって行うことができます-
QuadCurve quadcurve = new QuadCurve(startX, startY, controlX, controlY, endX, endY);
または、次のようにそれぞれのセッターメソッドを使用して-
setStartX(value);
setStartY(value);
setControlX(value);
setControlY(value);
setEndX(value);
setEndY(value);
Quadcurveを描画する手順
JavaFXでベジェ四辺形曲線を描くには、以下の手順に従います。
ステップ1:クラスを作成する
Javaクラスを作成し、パッケージ javafx.application の Application クラスを継承します。 次に、このクラスの* start()*メソッドを次のように実装できます。
public class ClassName extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
}
}
ステップ2:QuadCurveの作成
パッケージ javafx.scene.shape に属する QuadCurve という名前のクラスをインスタンス化することにより、JavaFXでQuadCurveを作成できます。 その後、次のコードブロックに示すように、このクラスをインスタンス化できます。
//Creating an object of the class QuadCurve
QuadCurve quadcurve = new QuadCurve();
ステップ3:QuadCurveにプロパティを設定する
次のコードブロックに示すように、それぞれのセッターメソッドを使用して、必要な曲線の開始点、終了点、制御点の3点のx、y座標を指定します。
//Adding properties to the Quad Curve
quadCurve.setStartX(100.0);
quadCurve.setStartY(220.0f);
quadCurve.setEndX(500.0f);
quadCurve.setEndY(220.0f);
quadCurve.setControlX(250.0f);
quadCurve.setControlY(0.0f);
ステップ4:グループオブジェクトの作成
- start()メソッドで、パッケージ *javafx.scene に属する Group という名前のクラスをインスタンス化して、グループオブジェクトを作成します。
次のようにグループに追加するために、前の手順で作成したQuadCurve(ノード)オブジェクトをパラメーターとしてGroupクラスのコンストラクターに渡します-
Group root = new Group(quadcurve);
ステップ5:シーンオブジェクトの作成
パッケージjavafx.sceneに属する Scene という名前のクラスをインスタンス化して、シーンを作成します。 このクラスに、前の手順で作成したGroupオブジェクト*(root)*を渡します。
ルートオブジェクトに加えて、画面の高さと幅を表す2つのdoubleパラメーターを、Groupクラスのオブジェクトとともに次のように渡すこともできます。
Scene scene = new Scene(group ,600, 300);
ステップ6:ステージのタイトルを設定する
Stageクラスの* setTitle()メソッドを使用して、ステージにタイトルを設定できます。 *primaryStage は、シーンクラスのstartメソッドにパラメーターとして渡されるStageオブジェクトです。
*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を使用して四辺形曲線を生成するプログラムです。 このコードを* QuadCurveExample.java。*という名前のファイルに保存します
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.QuadCurve;
public class QuadCurveExample extends Application {
@Override
public void start(Stage stage) {
//Creating a QuadCurve
QuadCurve quadCurve = new QuadCurve();
//Adding properties to the Quad Curve
quadCurve.setStartX(100.0);
quadCurve.setStartY(220.0f);
quadCurve.setEndX(500.0f);
quadCurve.setEndY(220.0f);
quadCurve.setControlX(250.0f);
quadCurve.setControlY(0.0f);
//Creating a Group object
Group root = new Group(quadCurve);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Drawing a Quad curve");
//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 QuadCurveExample.java
java QuadCurveExample
上記のプログラムは、実行時に、次のスクリーンショットに示すように、ベジェ四辺形曲線を表示するJavaFXウィンドウを生成します。