Zitat von
Kroko1999:
Code:
procedure DrehePunkt (P: TPoint; AWinkel: single; ADrehPunkt: TPoint);
var
H: TPoint;
begin
H.X := P.X-ADrehpunkt.X;
H.Y := P.Y-ADrehpunkt.Y;
H.X := H.X*Cos (AWinkel); // Winkel im Bogenmaß
H.Y := H.Y*Sin (AWinkel);
Result.X := H.X+ADrehpunkt.X;
Result.Y := H.Y+ADrehpunkt.Y;
end;
Kann man noch kürzen!
also wenn ichs so mache:
Delphi-Quellcode:
function DrehePunkt (P: TPoint; AWinkel: single; ADrehPunkt: TPoint) : TPoint;
var
H: TPoint;
begin
H.X := P.X-ADrehpunkt.X;
H.Y := P.Y-ADrehpunkt.Y;
H.X := round(H.X*Cos (AWinkel)); // Winkel im Bogenmaß
H.Y := round(H.Y*Sin (AWinkel));
Result.X := H.X+ADrehpunkt.X;
Result.Y := H.Y+ADrehpunkt.Y;
end;
gehts auch noch nicht (hatte round() und Rückgabewert gefehlt)... das streckt oder verzerrt nur :/