Einzelnen Beitrag anzeigen

HugoHase

Registriert seit: 4. Mai 2008
Ort: Berlin
30 Beiträge
 
Delphi 7 Enterprise
 
#1

Punkt(e) um beliebiges Zentrum drehen

  Alt 24. Sep 2008, 22:02
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
I hacked 127.0.0.1
  Mit Zitat antworten Zitat