次の方法で共有


ワールド変換の使用

ワールド変換は、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)

次のコードでは、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)

参照