How do you calculate the new X1,Y1 position?

I have the original X0, Y0 values and X1, Y1 Values. And the length of Bone, L.

Code:
X1 := X0 + L * Cos(DegToRad(Angle-90));
Y1 := Y0 + L * Sin(DegToRad(Angle-90));
This almost works for me. It only works if the Initial Angle between (X0,Y0) and (X1,Y1) is 0 otherwise I got a small difference after the rotation. And my Math does not help!

Do you have any advice?