2018年8月21日火曜日

JavaFXでのローカル座標系と表示デバイスのピクセルとの関係

JavaのGUIやグラフィックスは、従来のSwingからJavaFXに変更になったことは(Swingが消滅したわけではありませんが)すでに広く知られていると思います。

JavaFXは、これまでのSwingによるグラフィックスと比べて、とても楽しめるものになっています。描画には、Shapeクラスによるものと、従来のSwingに近いと思われるCanvasクラスによるものがあります。特に、Shapeクラスによるものは、きめ細かなインタラクションが可能であり、使い道がぐんと広がった気がします。また、アニメーションの方法も3種類備わっていて、高度な動きを比較的簡単に指定できます。

本格的にグラフィックスやアニメを専門にやる人は、他の有名な専用ソフトを使うのでしょうが、私のように、そうではないが汎用的なJavaプログラミングのなかに、GUIやグラフィックスも含めたいという人には、JavaFXは重宝しそうです。

Swingと比較して、JavaFXでは、グラフィックスの表示が格段に滑かになっています。恐らく、これは、コンポーネントのローカル座標系と表示デバイスのピクセルとの関係が次の図のようになっていることに起因していると思われます。


上記のテキストでは、「個々のNodeオブジェクトは、double型で表されるローカル座標系をもちます。 … 整数座標が画面の端およびピクセル間の間隙に割り当てられ、ピクセルの中心が隣り合う整数座標値の中点となっています。(図参照)」と説明されています。このような説明は、他の書物にはほとんど書かれいないようですので、理解を新たにできます。

0 件のコメント:

コメントを投稿