a) Coordinates of the point which your point will rotate around

(this is, "COR" = the "center of rotation").

b) The angle you want to rotate.

To apply Pithagoras' theorem, the COR must be at (0,0); thus, the trick is to calculate the differences (in coordinates units) respect to COR; after that, you can apply the angle, and, finally, to adjust the point with original displacement. That will give you the new coordinates of point.

Let's call Xrot and Yrot the center of rotation, and Ang, the angle to rotate.

Then, you can evaluate new location of point, which is located at Xp and Yp, with this algorithm:

Evaluate displacements as the difference between point and COR [coordinates]. Dx & Dy represent the "virtual" point you'll rotate as if COR really were at (0,0):

Dx:=Xp-Xrot; Dy:=Yp-Yrot;

Rotate the so obtained values. Watch out: first expression states "Cos-Sin"; second one says "Sin+Cos":

Xp:=Cos(Ang)*Dx - Sin(Ang)*Dy;

Yp:=Sin(Ang)*Dx + Cos(Ang)*Dy;

Finally, restore displacements:

Xp:=Xp+Xrot; Yp:=Yp+Yrot;

Xp and Yp have now the coordinates of new location of original point.