共用方式為


利用世界轉型

世界轉換是 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)

另請參閱