This code first defines that I want to rotate by 90°, then it says what I want to rotate by those 90°: a vector (0,-1).
AffineTransform at = AffineTransform.getRotateInstance(Math.toRadians(90), 0, 0); Point2D rotatedNormal = at.transform(new Point2D.Double(0,-1), null); // 12 clock reference vector
but I don't know how to say which Point I want to rotate? Is the Rotate object only intended to be added to the Transforms of controls?
Rotate rotate = new Rotate(90, 0, 0);
There was a bunch of this basic math stuff added to Java8.
// rotate the point at (0, -1) 90 degrees clockwise. Point2D rotatedNormal = new Rotate(90).transform(0, -1);