次の方法で共有


GraphicsPath.Flatten メソッド

パスの各曲線を、接続された線分のシーケンスに変換します。

オーバーロードの一覧

パスの各曲線を、接続された線分のシーケンスに変換します。

[Visual Basic] Overloads Public Sub Flatten()

[C#] public void Flatten();

[C++] public: void Flatten();

[JScript] public function Flatten();

指定された変換を適用し、 GraphicsPath オブジェクトの各曲線を、接続された線分のシーケンスに変換します。

[Visual Basic] Overloads Public Sub Flatten(Matrix)

[C#] public void Flatten(Matrix);

[C++] public: void Flatten(Matrix*);

[JScript] public function Flatten(Matrix);

GraphicsPath オブジェクトの各曲線を、接続された線分のシーケンスに変換します。

[Visual Basic] Overloads Public Sub Flatten(Matrix, Single)

[C#] public void Flatten(Matrix, float);

[C++] public: void Flatten(Matrix*, float);

[JScript] public function Flatten(Matrix, float);

使用例

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

  • グラフィックス パスと変換行列を作成します。
  • 4 点を使用して曲線をパスに追加します。
  • 黒いペンを使用して、パス (曲線) を画面に描画します。
  • 曲線を 10 ピクセルに下方にシフトし、平坦化します。
  • 赤いペンを使用して、曲線を画面に描画します。

[Visual Basic, C#] 赤い曲線には、点を接続する平坦化された直線があります。

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

 
Public Sub FlattenExample(e As PaintEventArgs)
Dim myPath As New GraphicsPath()
Dim translateMatrix As New Matrix()
translateMatrix.Translate(0, 10)
Dim point1 As New Point(20, 100)
Dim point2 As New Point(70, 10)
Dim point3 As New Point(130, 200)
Dim point4 As New Point(180, 100)
Dim points As Point() =  {point1, point2, point3, point4}
myPath.AddCurve(points)
e.Graphics.DrawPath(New Pen(Color.Black, 2), myPath)
myPath.Flatten(translateMatrix, 10F)
e.Graphics.DrawPath(New Pen(Color.Red, 1), myPath)
End Sub 'FlattenExample
        
[C#] 
private void FlattenExample(PaintEventArgs e)
{
GraphicsPath myPath = new GraphicsPath();
Matrix translateMatrix = new Matrix();
translateMatrix.Translate(0, 10);
Point point1 = new Point(20, 100);
Point point2 = new Point(70, 10);
Point point3 = new Point(130, 200);
Point point4 = new Point(180, 100);
Point[] points = {point1, point2, point3, point4};
myPath.AddCurve(points);
e.Graphics.DrawPath(new Pen(Color.Black, 2), myPath);
myPath.Flatten(translateMatrix, 10f);
e.Graphics.DrawPath(new Pen(Color.Red, 1), myPath);
}
        

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

参照

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