In JavaFX the rotateProperty of a Node provides me with its rotation in degree relative to its parent. Is there a way to get the absolute rotation in degree, either relative to
The question isn't really well defined, since different Nodes in the Scene graph are potentially rotated about different axes.
The getLocalToSceneTransform()
method will return a Transform
representing the transformation from the local coordinate system for the node to the coordinate system for the Scene
. This is an affine transformation; you can extract a 3x4 matrix representation of it relative to the x- y- and z-axes if you like.
So, i did the math myself, and for my case i either get the rotation in Radians via:
double xx = myNode.getLocalToSceneTransform().getMxx();
double xy = myNode.getLocalToSceneTransform().getMxy();
double angle = Math.atan2(-xy, xx);
or
double yx = myNode.getLocalToSceneTransform().getMyx();
double yy = myNode.getLocalToSceneTransform().getMyy();
double angle = Math.atan2(yx, yy);
In both cases this can be converted to 360-degrees:
angle = Math.toDegrees(angle);
angle = angle < 0 ? angle + 360 : angle;