AffineTransform 表示 2D 仿射變換,以 3x3 矩陣存儲,保持直線與平行關係。常用靜態工廠方法創建基礎變換:
getTranslateInstance(tx, ty) 平移getRotateInstance(theta) 繞原點旋轉 (弧度)getRotateInstance(theta, x, y) 繞指定點旋轉getScaleInstance(sx, sy) 縮放getShearInstance(shx, shy) 剪切 (傾斜)變換可鏈式組合:transform.concatenate(another) (先應用 another 再應用 transform)。Graphics2D 通過 setTransform 或 transform 應用於繪圖上下文。
AffineTransform at = new AffineTransform();
at.translate(100, 100); // 先平移
at.rotate(Math.PI / 4); // 再旋轉 45 度
at.scale(2, 2); // 最後縮放
g2d.setTransform(at);
g2d.fillRect(-25, -25, 50, 50); // 繪製中心在原點的正方形
順序影響結果:平移→旋轉 ≠ 旋轉→平移。理解矩陣乘法順序 (右乘) 對正確組合變換至關重要。可用 createInverse() 獲取逆變換實現座標映射 (如屏幕座標轉模型座標)。