Javafx-2dshapes-cubic-curve

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

JavaFX-2DシェイプCubicCurve

CubicCurveは、2つの変数の3次多項式関数によって記述され、次の形式で書くことができます-

CubicCurve

これらのベジェ曲線は通常、コンピューターグラフィックスで使用されます。 それらはすべてのスケールで適度に滑らかに見えるパラメトリック曲線です。 これらの曲線は、XY平面上の点に基づいて描画されます。

3次曲線は、XY平面のベジェパラメトリック曲線であり、次数3の曲線です。 次の図に示すように、*開始点、終了点、制御点、制御点2 *の4つの点を使用して描画されます。

ベジェ曲線

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

このクラスをインスタンス化することにより、JavaFXでCubicCurveノードを作成できます。

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

  • startX -曲線の開始点のx座標。
  • startY -曲線の始点のy座標。
  • controlX1 -曲線の最初の制御点のx座標。
  • controlY1 -曲線の最初の制御点のy座標。
  • controlX2 -曲線の2番目の制御点のx座標。
  • controlY2 -曲線の2番目の制御点のy座標。
  • endX -曲線の終点のx座標。
  • endY -曲線の終点のy座標。

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

CubicCurve cubiccurve = new CubicCurve(
   startX, startY, controlX1, controlY1, controlX2, controlY2, endX, endY);

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

setStartX(value);
setStartY(value);
setControlX1(value);
setControlY1(value);
setControlX2(value);
setControlY2(value);
setEndX(value);
setEndY(value);

CubicCurveを描画する手順

JavaFXでベジェ3次曲線を描画するには、以下の手順に従います。

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

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

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

ステップ2:CubicCurveの作成

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

//Creating an object of the class CubicCurve
CubicCurve cubiccurve = new CubicCurve();

手順3:CubicCurveにプロパティを設定する

次のコードブロックに示すように、それぞれの設定メソッドを使用して、必要な曲線の*開始点、終了点、制御点1 *および*制御点2 *の4つの点のx、y座標を指定します。

//Setting properties to cubic curve
cubicCurve.setStartX(100.0f);
cubicCurve.setStartY(150.0f);
cubicCurve.setControlX1(400.0f);
cubicCurve.setControlY1(40.0f);
cubicCurve.setControlX2(175.0f);
cubicCurve.setControlY2(250.0f);
cubicCurve.setEndX(500.0f);
cubicCurve.setEndY(150.0f);

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

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

前の手順で作成したCubicCurve(ノード)オブジェクトをパラメーターとしてGroupクラスのコンストラクターに渡し、次のようにグループに追加します-

Group root = new Group(cubiccurve);

ステップ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()*という名前のメソッドを使用して、シーンのコンテンツを表示します。

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

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

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

以下は、JavaFXを使用してBezier CubicCurveを生成するプログラムです。 このコードを CubicCurveExample.java という名前のファイルに保存します。

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

public class CubicCurveExample extends Application {
   @Override
   public void start(Stage stage) {
     //Drawing a cubic curve
      CubicCurve cubicCurve = new CubicCurve();

     //Setting properties to cubic curve
      cubicCurve.setStartX(100.0f);
      cubicCurve.setStartY(150.0f);
      cubicCurve.setControlX1(400.0f);
      cubicCurve.setControlY1(40.0f);
      cubicCurve.setControlX2(175.0f);
      cubicCurve.setControlY2(250.0f);
      cubicCurve.setEndX(500.0f);
      cubicCurve.setEndY(150.0f);

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

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

     //Setting title to the Stage
      stage.setTitle("Drawing a cubic 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 CubicCurveExample.java
java CubicCurveExample

実行すると、上記のプログラムは、以下に示すようなベジェ3次曲線を表示するJavaFXウィンドウを生成します。

3次曲線の描画