1 変換の概要
この章では、JavaFXでサポートされている変換について説明します。
変換はすべてjavafx.scene.transform
パッケージ内にあり、これらはTransform
クラスのサブクラスです。
変換の概要
変換では、特定のパラメータに応じて座標システム内のグラフィカル・オブジェクトの位置を変更します。JavaFXでは、次のタイプの変換がサポートされています。
-
平行移動
-
回転
-
スケーリング
-
変形
これらの変換は、スタンドアロン・ノードまたはノードのグループに適用できます。一度に1つの変換を適用することも、複数の変換を組み合せて1つのノードに適用することもできます。
Transform
クラスは、アフィン変換の概念を実装します。Affine
クラスは、Transform
クラスを拡張し、すべての変換のスーパークラスとして機能します。アフィン変換は、ユークリッド代数に基づいており、線の直線性と平行性を保持しながら初期の座標から他の座標への線形マッピングを(マトリックスの使用を介して)実行します。アフィン変換は、observableArrayListsの回転、平行移動、スケーリング、変形により構成されます。
注意:
通常、Affine
クラスは直接使用せず、かわりに特定の平行移動、スケーリング、回転、変形変換を使用します。
JavaFXでの変換は3つの座標に沿って実行できるため、ユーザーは3次元(3-D)オブジェクトと効果を作成できます。3-Dグラフィックでオブジェクトの表示を管理するために、JavaFXにはzバッファリングが実装されています。zバッファリングにより、仮想世界のパースペクティブが現実世界のものと同じになります。つまり、前面にある固体によってその後ろにある固体の表示が遮られます。zバッファリングは、setDepthTest
クラスを使用して有効にすることができます。サンプル・アプリケーションでzバッファリングを無効にしてみる(setDepthTest(DepthTest.DISABLE)
)ことにより、zバッファの効果を確認できます。
変換の使用を簡略化するために、JavaFXでは、x軸とy軸がある変換コンストラクタをx、yおよびz軸に沿って実装します。2次元(2-D)効果を作成するには、xおよびy座標のみを指定します。3-D効果を作成するには、3つすべての座標を指定します。
JavaFXで3-Dオブジェクトと変換効果を表示するには、ユーザーはパースペクティブ・カメラを有効にする必要があります。
基礎となる概念を理解すればJavaFXをより効率的に使用できるようになりますが、このドキュメントに用意されている例を学習し、様々な変換パラメータを使用してみることによって変換の使用を開始することもできます。特定のクラス、メソッドまたは追加機能の詳細は、APIドキュメントを参照してください。
このドキュメントでは、木琴アプリケーションをサンプルとして使用し、使用可能なすべての変換について説明します。ソース・コードは、transformations.zipリンクをクリックしてダウンロードできます。