TGPGraphics 維護一個「世界座標到裝置座標」的轉換矩陣。ScaleTransform、RotateTransform、TranslateTransform 依序右乘矩陣,影響後續所有繪圖指令。ResetTransform 恢復單位矩陣。
g.DrawRectangle(p, rect); // 原始
g.ScaleTransform(2, 0.5); // X 放大 2 倍,Y 縮小 0.5 倍
p.SetColor(aclBlue);
g.DrawRectangle(p, rect); // 變換後重繪
g.ResetTransform;
g.DrawRectangle(p, rect);
g.RotateTransform(28); // 順時針 28 度 (負值逆時針)
p.SetColor(aclBlue);
g.DrawRectangle(p, rect);
g.ResetTransform;
g.DrawRectangle(p, rect);
g.TranslateTransform(111, 111); // 位移 (111,111)
p.SetColor(aclBlue);
g.DrawRectangle(p, rect);
g.ResetTransform;
M' = M × T × R × STranslate(center) → Rotate → Translate(-center) → Draw
var m: TGPMatrix;
g.GetTransform(m); // 取得目前 3x2 仿射矩陣
g.SetTransform(m); // 直接設定
g.MultiplyTransform(m2); // 右乘另一矩陣
掌握 Transform 即掌握 GDI+ 所有幾何變換核心,複雜動畫、相機視角、骨骼動畫皆由此延伸。