Einzelnen Beitrag anzeigen

Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
509 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: [Firemonkey] TBitmap.Rotate Center?

  Alt 18. Jul 2016, 07:00
Habs hinbekommen, war einfacher als gedacht. ^^
Falls es jemand mal brauchen sollte hier ein Beispiel, funktioniert wie ich das brauche und ohne Matrizen

Delphi-Quellcode:
function RotatePoint(const APoint, ACenter : TPointF; const AAngle : single) : TPointF;
begin
  Result := (APoint - ACenter).Rotate(DegToRad(AAngle)) + ACenter;
end;


var
  LNullPoint, LNullPointRotated : TPointF;
begin
  FRotatedBitmap.Assign(FBitmap);
  FRotatedBitmap.Rotate(45);
  
  LNullPoint := PointF((FRotatedBitmap.Bitmap.Width-FBitmap.Bitmap.Width)/2, (FRotatedBitmap.Bitmap.Height-FBitmap.Bitmap.Height)/2);
  LNullPointRotated := RotatePoint(LNullPoint, PointF(FRotatedBitmap.Bitmap.Width/2, FRotatedBitmap.Bitmap.Height/2), 45);
end;
Nun hat man die alten Koordinaten des Null-Punktes (in diesem Fall: X0 Y0) und kann das gedrehte Bitmap einfach auf die richtige Stelle rendern.

Freundliche Grüsse
Milos
  Mit Zitat antworten Zitat