Einen schönen guten Abend ... und wieder einmal bin ich auf eure Hilfe angewiesen ...
Ich möchte einige Punkte um ein beliebiges Zentrum drehen ... es klappt soweit auch ganz nur verzerrt sich die Figur ... ist mein Algorithmus falsch ??
// cosA und sinA sind Arrays mit den schon errechneten Werten um Rechenzeit zu sparen
Delphi-Quellcode:
function drehen(w : integer; Punkte : TPunkte; dPunkt : TPoint):TPunkte;
var i : integer;
P : TPoint;
begin
for i:=0 to length(Punkte)-1 do
begin
P:=Punkte[i];
Punkte[i].X:=round((P.X-dPunkt.X)*cosA[w]-(P.Y-dPunkt.Y)*sinA[w])+dPunkt.X;
Punkte[i].Y:=round((P.Y-dPunkt.Y)*cosA[w]+(P.X-dPunkt.X)*sinA[w])+dPunkt.Y;
end;
result:=Punkte;
end;
ich hoffe ihr könnt mir helfen ... THX