Imagine you have two points in 2d space and you need to rotate one of these points by X degrees with the other point acting as a center.
float distX = Math.abs( centerX -point2X );
float distY = Math.abs( centerY -point2Y );
float dist = FloatMath.sqrt( distX*distX + distY*distY );
So far I just got to finding the distance between the two points… any ideas where should I go from that?

The easiest approach is to compose three transformations:
When you work this all out, you end up with the following transformation (where
xis the desired angle of rotation in radians):Note that this makes the assumption that the angle
xis negative for clockwise rotation (the so-called standard or right-hand orientation for the coordinate system). If that’s not the case, then you would need to reverse the sign on the terms involvingsin(x).