在JavaFX节点的rotateProperty为我提供了其相对于其父度旋转。 有没有办法让度或者相对于场景或画面绝对旋转,?
例如,有一种方法来计算从节点的变换对象)的角度我可以从getLocalToSceneTransform得到(?
在JavaFX节点的rotateProperty为我提供了其相对于其父度旋转。 有没有办法让度或者相对于场景或画面绝对旋转,?
例如,有一种方法来计算从节点的变换对象)的角度我可以从getLocalToSceneTransform得到(?
所以,我做数学自己,对我来说,我无论是通过获得的旋转弧度:
double xx = myNode.getLocalToSceneTransform().getMxx();
double xy = myNode.getLocalToSceneTransform().getMxy();
double angle = Math.atan2(-xy, xx);
要么
double yx = myNode.getLocalToSceneTransform().getMyx();
double yy = myNode.getLocalToSceneTransform().getMyy();
double angle = Math.atan2(yx, yy);
在这两种情况下,这可以转化成360度:
angle = Math.toDegrees(angle);
angle = angle < 0 ? angle + 360 : angle;
问题是没有真正明确定义,由于在场景图不同的节点可能绕不同的轴线。
所述getLocalToSceneTransform()
方法将返回一个Transform
表示从本地变换坐标系的节点的坐标系的Scene
。 这是一个仿射变换; 可以提取相对于x轴y轴和z轴,如果你喜欢它的一个3×4矩阵表示。