Javafx-2dshapes-ellipse
JavaFX-2Dシェイプ楕円
楕円は、それぞれがフォーカスと呼ばれる2つのポイントによって定義されます。 楕円上の任意の点が取られた場合、焦点までの距離の合計は一定です。 楕円のサイズは、これら2つの距離の合計によって決まります。 これらの距離の合計は、長軸(楕円の最長直径)の長さに等しくなります。 実際、円は楕円の特別な場合です。
楕円には3つのプロパティがあります。
- 中心-2つの焦点を結ぶ線分の中点である楕円内部の点。 長軸と短軸の交点。
- 長軸-楕円の最長直径。
- 短軸-楕円の最短直径。
JavaFXでは、楕円は Ellipse という名前のクラスで表されます。 このクラスは、パッケージ javafx.scene.shape に属します。
このクラスをインスタンス化することにより、JavaFXでEllipseノードを作成できます。
このクラスには、doubleデータ型の4つのプロパティがあります-
- centerX -ピクセルの楕円の中心のx座標。
- centerY -ピクセルの楕円の中心のy座標。
- radiusX -楕円ピクセルの幅。
- radiusY -楕円ピクセルの高さ。
楕円を描くには、これらのプロパティに値を渡す必要があります。以下に示すように、インスタンス化時に同じ順序でこのクラスのコンストラクタに値を渡すか、
Circle circle = new Circle(centerX, centerY, radiusX, radiusY);
または、次のようにそれぞれのセッターメソッドを使用して-
setCenterX(value);
setCenterY(value);
setRadiusX(value);
setRadiusY(value);
楕円を描く手順
以下の手順に従って、JavaFXで楕円を描画します。
ステップ1:クラスを作成する
Javaクラスを作成し、パッケージ javafx.application の Application クラスを継承し、以下に示すようにこのクラスの* start()*メソッドを実装します。
public class ClassName extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
}
}
ステップ2:楕円の作成
パッケージ javafx.scene.shape に属する Ellipse という名前のクラスをインスタンス化することにより、JavaFXでEllipseを作成できます。 このクラスを次のようにインスタンス化できます。
//Creating an Ellipse object
Ellipse ellipse = new Ellipse();
手順3:プロパティを楕円に設定する
プロパティX、Y、RadiusX、RadiusYを設定して、楕円の中心のx、y座標→円のx軸とy軸(長軸と短軸)に沿った楕円の幅を指定します。
これは、次のコードブロックに示すように、それぞれのセッターメソッドを使用して実行できます。
ellipse.setCenterX(300.0f);
ellipse.setCenterY(150.0f);
ellipse.setRadiusX(150.0f);
ellipse.setRadiusY(75.0f);
ステップ4:グループオブジェクトの作成
- start()メソッドで、パッケージ *javafx.scene に属する Group という名前のクラスをインスタンス化して、グループオブジェクトを作成します。
前の手順で作成したEllipse(ノード)オブジェクトをパラメーターとしてGroupクラスのコンストラクターに渡します。 これは、次のコードブロックに示すように、グループに追加するために行う必要があります-
Group root = new Group(ellipse);
ステップ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を使用して楕円を生成するプログラムです。 このコードを EllipseExample.java という名前のファイルに保存します。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.Ellipse;
public class EllipseExample extends Application {
@Override
public void start(Stage stage) {
//Drawing an ellipse
Ellipse ellipse = new Ellipse();
//Setting the properties of the ellipse
ellipse.setCenterX(300.0f);
ellipse.setCenterY(150.0f);
ellipse.setRadiusX(150.0f);
ellipse.setRadiusY(75.0f);
//Creating a Group object
Group root = new Group(ellipse);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Drawing an Ellipse");
//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 EllipseExample.java
java EllipseExample
実行すると、上記のプログラムは、次のように楕円を表示するJavaFXウィンドウを生成します。