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