Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaFXでパス要素に3次曲線(CubicCurveTo)を作成する方法

CubicCurveToクラスは、パス要素の一つである3次曲線(cubic curve)を表します。このクラスを使用すると、現在の座標から指定した新しい座標まで、2つのコントロールポイントを持つ滑らかな3次ベジェ曲線を描画できます。

3次曲線パス要素の作成手順

パスに3次曲線の要素を追加するには、以下の手順に従います。

  • CubicCurveToクラスをインスタンス化します。

  • セッターメソッドを使用するか、コンストラクタに引数を渡すことで、各プロパティに値を設定します。コントロールポイント1(controlX1、controlY1)、コントロールポイント2(controlX2、controlY2)、および終点の座標(x、y)を指定します。

  • Pathクラスをインスタンス化します。

  • 作成したPathオブジェクトに対してgetElements()メソッドを呼び出し、監視可能なリスト(ObservableList)を取得します。

  • add()メソッドを使用して、作成したCubicCurveToオブジェクトをこのリストに追加します。

  • 最後に、パスをGroupオブジェクトに追加します。

サンプルコード

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.CubicCurveTo;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.scene.shape.VLineTo;

public class CubicCurveExample extends Application {
   public void start(Stage stage) {
      // パス要素オブジェクトの作成
      MoveTo moveTo = new MoveTo(15, 15);
      LineTo line1 = new LineTo(100, 150);
      
      // CubicCurveToクラスのインスタンス化
      CubicCurveTo cubicCurveTo = new CubicCurveTo();
      
      // CubicCurveToクラスのプロパティ設定
      cubicCurveTo.setControlX1(400.0f);
      cubicCurveTo.setControlY1(40.0f);
      cubicCurveTo.setControlX2(175.0f);
      cubicCurveTo.setControlY2(250.0f);
      cubicCurveTo.setX(500.0f);
      cubicCurveTo.setY(150.0f);
      
      // VLineToオブジェクトの作成
      VLineTo vLine = new VLineTo();
      vLine.setY(80);
      
      // Pathの作成
      Path path = new Path();
      path.getElements().addAll(moveTo, line1, cubicCurveTo, vLine);
      
      // その他のプロパティ設定
      path.setStrokeWidth(8.0);
      path.setStroke(Color.DARKSLATEGREY);
      
      // Stageオブジェクトの準備
      Group root = new Group(path);
      Scene scene = new Scene(root, 595, 300, Color.BEIGE);
      stage.setTitle("JavaFX Example");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]) {
      launch(args);
   }
}

この例では、MoveToで始点(15, 15)に移動し、LineToで直線を描いた後、CubicCurveToによって2つのコントロールポイント(400, 40)と(175, 250)を経由して座標(500, 150)まで曲線が描画されます。最後にVLineToで垂直線を追加しています。

実行結果

JavaFXでパス要素に3次曲線(CubicCurveTo)を作成する方法

  1. 【JavaFX】2つのつまみを持つスライダー(RangeSlider)を作成する方法

    スライダーとは、連続した値の範囲を視覚的に表示するためのUIコンポーネントです。トラック上には数値が表示されており、その値を指し示す「つまみ(サム)」がトラックに沿って移動します。スライダーには最大値・最小値・初期値を自由に設定することができます。 標準のJavaFXスライダーの限界 JavaFXが標準で提供するスライダーには、つまみは1つしかありません。最小値と最大値の両方を選択できる「2つのつまみを持つスライダー」を作成したい場合は、外部ライブラリである org.controlsfx.control を利用する必要があります。 手順1:Maven依存関係を追加する このライブラリを使用す

  2. Tkinterのfiledialogでファイルパス(初期ディレクトリ)を指定する方法

    Tkinterには、アプリケーションのUIコンポーネントやユーザー操作用の要素を構築するための組み込み関数やクラスライブラリが数多く用意されています。その中でもfiledialogモジュールは、ファイルやディレクトリを選択するウィンドウを作成するためのクラスと関数を提供しています。ユーザーにシステム上のファイルやフォルダをブラウズしてもらいたい場面で非常に便利です。 さらに、ファイルを選択させるときの起点となるディレクトリの場所を指定することもできます。特定の場所から始まるファイルダイアログを表示するには、静的ファクトリ関数askopenfilename(initialdir=<loc