JavaFXの座標系と座標変換
メインページ>コンピュータの部屋#JavaFX>JavaFX Tips
JavaFXに関してたくさんの解説がネットや書籍に載っていますが、意外なことに
JavaFXの座標系に関する解説が少ないようです。
この記事では JavaFx の座標系と、座標変換に関して解説します。
JavaFXの座標系
まず、JavaFxで使用されているワールド座標を示します。 ワールド座標とは、JavaFXのコントロールや図形が置かれる 座標空間です。
![]() |
図1 JavaFXのワールド座標 |
図はシーンで3Dカメラを用いない場合の Scene で使われるワールド座標系です。 z軸も書いてあるのは、2Dグラフィックでも画面の深さ方向の座標(Z軸)が使われることがあるからです。
Scene(ウィンドウ) の左上が座標系の原点で、そこから右方向にX軸が、下方向にY軸が伸びます。 軸目盛の単位はピクセルです。
3Dカメラを用いない Scene では、Scene とワールド座標の関係は変えられません。固定です。
ローカル座標
Scene のルートコンテナに登録された個々のノード(コントロールやコンテナや図形)は、 自身のローカル座標を持ちます。ローカル座標は初期状態では親ノードのローカル座標と 一致しています。つまり、Sceneの中のコントロールや図形、コンテナに Transform(変換)が無く、 layoutX, layoutYプロパティもゼロならば、全てのローカル座標はグローバル座標と一致します。
ノードはローカル座標の中に置かれますが、基本的には ローカル座標の中で自身の位置を大きく変更することは可能ですが、あまり行われません。 ローカル座標系は、図形に固定された座標系ととらえ、ワールド座標系での図形の位置は、 ワールド座標に対するローカル座標を変更することで行います。つまり JavaFX の ノード Transform(変換) とはノードのローカル座標を決定することなのです。
鋭意作成中