次の方法で共有


Graphics.TransformPoints メソッド

この Graphics オブジェクトの現在のワールド変換とページ変換を使用して、点の配列をある座標空間から別の座標空間に変換します。

オーバーロードの一覧

この Graphics オブジェクトの現在のワールド変換とページ変換を使用して、点の配列をある座標空間から別の座標空間に変換します。

[Visual Basic] Overloads Public Sub TransformPoints(CoordinateSpace, CoordinateSpace, Point())

[C#] public void TransformPoints(CoordinateSpace, CoordinateSpace, Point[]);

[C++] public: void TransformPoints(CoordinateSpace, CoordinateSpace, Point[]);

[JScript] public function TransformPoints(CoordinateSpace, CoordinateSpace, Point[]);

この Graphics オブジェクトの現在のワールド変換とページ変換を使用して、点の配列をある座標空間から別の座標空間に変換します。

[Visual Basic] Overloads Public Sub TransformPoints(CoordinateSpace, CoordinateSpace, PointF())

[C#] public void TransformPoints(CoordinateSpace, CoordinateSpace, PointF[]);

[C++] public: void TransformPoints(CoordinateSpace, CoordinateSpace, PointF[]);

[JScript] public function TransformPoints(CoordinateSpace, CoordinateSpace, PointF[]);

使用例

[Visual Basic, C#] 次の例は、Windows フォームでの使用を意図してデザインされており、 Paint イベント ハンドラのパラメータである PaintEventArgs e が必要です。このコードは次のアクションを実行します。

  • 2 つの点を作成し、その間に青の直線を描画します。
  • x 方向に 40、y 方向に 30 平行移動するようにワールド変換を設定します。
  • ワールド座標 (CoordinateSpace.World) の点をページ座標 (CoordinateSpace.Page) に変換します。
  • ワールド変換を単位行列にリセットし、変換された点の間に赤の直線を描画します。

[Visual Basic, C#] 青の直線と、その下に平行移動した赤の直線が生成されます。

[Visual Basic, C#] メモ   ここでは、TransformPoints のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
Public Sub TransformPointsPointF(e As PaintEventArgs)
' Create array of two points.
Dim points As PointF() =  {New PointF(0F, 0F), New PointF(100F, _
50F)}
' Draw line connecting two untransformed points.
e.Graphics.DrawLine(New Pen(Color.Blue, 3), points(0), points(1))
' Set world transformation of Graphics object to translate.
e.Graphics.TranslateTransform(40F, 30F)
' Transform points in array from world to page coordinates.
e.Graphics.TransformPoints(CoordinateSpace.Page, _
CoordinateSpace.World, points)
' Reset world transformation.
e.Graphics.ResetTransform()
' Draw line that connects transformed points.
e.Graphics.DrawLine(New Pen(Color.Red, 3), points(0), points(1))
End Sub
        
[C#] 
public void TransformPointsPointF(PaintEventArgs e)
{
// Create array of two points.
PointF[] points = {new PointF(0.0F, 0.0F),
new PointF(100.0F, 50.0F)};
// Draw line connecting two untransformed points.
e.Graphics.DrawLine(new Pen(Color.Blue, 3),
points[0],
points[1]);
// Set world transformation of Graphics object to translate.
e.Graphics.TranslateTransform(40.0F, 30.0F);
// Transform points in array from world to page coordinates.
e.Graphics.TransformPoints(CoordinateSpace.Page,
CoordinateSpace.World,
points);
// Reset world transformation.
e.Graphics.ResetTransform();
// Draw line that connects transformed points.
e.Graphics.DrawLine(new Pen(Color.Red, 3),
points[0],
points[1]);
}
        

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

Graphics クラス | Graphics メンバ | System.Drawing 名前空間