Das Problem bei den Graphics32 ist, dass es eben keine eigene Transformations-Matrix für ein TPolygon32 mitführt und somit auf diese nicht zugegriffen werden kann.
Wenn man ein Polygon über die TAffineTransformation transformiert, werden die Koordinaten der Punkte-Arrays in Polygon.Points direkt (und permanent!) überschrieben und nicht erst, wie z.B. bei
OpenGL, eine Transformationsmatrix des Objektes verändert, die man nachher auch noch manipulieren könnte.
Du könntest dir aber z.B. eine eigene Klasse von TPolygon32 ableiten, die genau das macht, dass vor dem Zeichnen eben eine zuvor dem Polygon zugewiesene TAffineTransformation (per Matrix-Multiplikation) angewendet wird, die Punkte selbst aber nicht durch ein transform() überschrieben werden.
Dazu müsstest du die Draw() und Transform()-Routinen überschreiben und der neuen Klasse eine neue Property einer TAffineTransformation geben, die dann immer direkt vor dem Zeichnen angewendet wird.
Ab da arbeitest du dann nur noch mit der AffineTransformation. Diese kannst du über AffineTransformation.Clear() auch zurücksetzen, dadurch wird die Identitätsmatrix für die Transformation geladen.
Ich weiss jetzt ja nicht, was du genau mit dem Zeug vorhast, aber wenn es darum geht, mit Matrizen, Transformationen und Polygonen herumzuspielen, dann würde ich dir jetzt fast raten, vergiss die Graphics32 und nimm gleich
OpenGL
Da bekommst du die Hardware-Beschleunigung frei Haus und noch diverse andere Nettigkeiten, und vor Allem...es wird nie langweilig damit
Die Lernkruve ist zwar am Anfang ziemlich steil, aber wenn man mal die Grundbegriffe verstanden hat, macht es wirklich Spass.