Jak obrócić punkt
degenerator
Obrót punktu wobec wybranego środnka
function Turn(Center,Point: Windows.TPoint;Angle: System.Real):Windows.TPoint;
var dx,dy,px,py,r: System.Integer;
Begin
dx := Center.X - Point.X;
dy := Center.Y - Point.Y;
r := System.Round(System.Sqrt(System.Sqr(dx)+System.Sqr(dy)));
Angle := Math.DegToRad(Angle) - (System.Pi/2) - Math.ArcTan2(dy,dx);
px := Math.Sign(System.Sin(Angle))*System.Round(System.Sqrt(System.Sqr(r*Math.Tan(Angle))/( 1+ System.Sqr(Math.Tan(Angle)))) );
py := Math.Sign(System.Cos(Angle))*System.Round(System.Sqrt(System.Sqr(r)/(1+ System.Sqr(Math.Tan(Angle)))));
Turn.X := Center.X + px;
Turn.Y := Center.Y + py;
End;
Strasznie pokręcona ta funkcja...
ale po co wszędzie te mathy i systemy to już inna sprawa..
troche śmieszny tytuł obrócić punkt...