JavaFX8でマウス位置を中心にしたズームを行いたい
本家スタックオーバーフローでも同様の質問がされています。
https://stackoverflow.com/questions/35242838/javafx-zooming-to-mouse-as-pivot
この記事の質問者は自己解決されたようなのですが、私は解決に至っておらず、改めて日本語版の方で質問させていただくことにしました。
この記事の概要は下記の通りです。
- ノードが全てグリッド上に存在するときは期待通り(マウス位置を中心に)ズームされる
- ノードがグリッド外にある時にズームすると位置がずれる。
キモの部分はScrollEventのhandleメソッドです。dx,dyが拡縮の中心位置を設定しているのはわかるのですが、このロジックでノードがグリッド外にある時に計算結果がズレる理由がわかりません。
ノードがグリッド外にあるときでも正常にズームできる方法はないでしょうか?
タイトルの機能を実装することが目的なので、全く別の実現方法でもかまいません。