Einzelnen Beitrag anzeigen

SirTwist

Registriert seit: 28. Sep 2006
198 Beiträge
 
Delphi XE Professional
 
#2

Re: Punkt drehen

  Alt 8. Jul 2007, 20:25
Hm,

so eine Funktion habe ich just gestern auch geschrieben, komme aber mit deutlich weniger Zeilen aus

Delphi-Quellcode:
procedure TScaledCanvas.RotatePoints(var pnts: array of TPoint; angle: Double;
  center_x, center_y: Integer);
var i, x, y: Integer;
begin
  for i:=Low(pnts) to High(pnts) do begin
    x := pnts[i].X - center_x;
    y := pnts[i].Y - center_y;
    pnts[i].X := center_x + Round(x * Sin(angle) + y * Cos(angle));
    pnts[i].Y := center_y + Round(y * Sin(angle) - x * Cos(angle));
  end;
end;
Eigentlich funktionierts genauso gut, also in diesem Fall wird gleich ein ganzes Array von Punkten um einen Center rotiert.
  Mit Zitat antworten Zitat