次の方法で共有


ワールド変換の使用

ワールド変換は、Graphics クラスのプロパティです。 ワールド変換を指定する数値は、3×3 の行列を表す Matrix オブジェクトに格納されます。 Matrix クラスと Graphics クラスには、ワールド変換の行列に数値を設定するためのいくつかのメソッドがあります。

さまざまな種類の変換

次の例では、最初にコードによって 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)

次のコードは、四角形を 1.75 の係数で x 方向に拡大し、0.5 の係数で y 方向に縮小する拡大縮小変換を適用します。

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)

関連項目