共用方式為


使用全局轉換

世界轉換是 Graphics 類別的屬性。 指定世界轉換的數字會儲存在代表 3×3 矩陣的 Matrix 物件中。 MatrixGraphics 類別有數種方法可設定世界轉換矩陣中的數字。

不同類型的轉換

在下列範例中,程式碼會先建立 50×50 個矩形,並將其找出在原點 (0, 0)。 原點位於工作區的左上角。

Rectangle rect = new Rectangle(0, 0, 50, 50);
Pen pen = new Pen(Color.FromArgb(128, 200, 0, 200), 2);
e.Graphics.DrawRectangle(pen, rect);
Dim rect As New Rectangle(0, 0, 50, 50)
Dim pen As New Pen(Color.FromArgb(128, 200, 0, 200), 2)
e.Graphics.DrawRectangle(pen, rect)

下列程式碼會套用縮放轉換,在 x 方向將矩形擴大 1.75 倍,在 y 方向將矩形縮小 0.5 倍:

e.Graphics.ScaleTransform(1.75f, 0.5f);
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ScaleTransform(1.75F, 0.5F)
e.Graphics.DrawRectangle(pen, rect)

結果是一個矩形,在 x 方向和 Y 方向比原始方向短。

若要旋轉矩形,而不是調整矩形,請使用下列程式碼:

e.Graphics.ResetTransform();
e.Graphics.RotateTransform(28); // 28 degrees
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ResetTransform()
e.Graphics.RotateTransform(28) ' 28 degrees
e.Graphics.DrawRectangle(pen, rect)

若要轉譯矩形,請使用下列程式碼:

e.Graphics.ResetTransform();
e.Graphics.TranslateTransform(150, 150);
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ResetTransform()
e.Graphics.TranslateTransform(150, 150)
e.Graphics.DrawRectangle(pen, rect)

另請參閱