使用全局轉換
世界轉換是 Graphics 類別的屬性。 指定世界轉換的數位會儲存在 Matrix 物件中,代表 3 ×3 矩陣。 Matrix和Graphics類別有數種方法可設定世界轉換矩陣中的數位。 本節中的範例會操作矩形,因為矩形很容易繪製,而且很容易看到轉換對矩形的影響。
首先,我們會建立 50 到 50 個矩形,並將它尋找在原點 (0, 0) 。 原點位於工作區的左上角。
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.DrawRectangle(&pen, rect);
下列程式碼會套用縮放轉換,以 x 方向的 1.75 因數展開矩形,並以 Y 方向的 0.5 因數縮小矩形:
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.ScaleTransform(1.75f, 0.5f);
graphics.DrawRectangle(&pen, rect);
結果是一個矩形,其長度比原始的 x 方向長,而 Y 方向較短。
若要旋轉矩形而不是調整矩形,請使用下列程式碼,而不是上述程式碼:
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.RotateTransform(28.0f);
graphics.DrawRectangle(&pen, rect);
若要轉譯矩形,請使用下列程式碼:
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.TranslateTransform(150.0f, 150.0f);
graphics.DrawRectangle(&pen, rect);