GraphicsPath.Flatten メソッド

定義

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

オーバーロード

Flatten()

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

Flatten(Matrix)

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

Flatten(Matrix, Single)

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

Flatten()

ソース:
GraphicsPath.cs
ソース:
GraphicsPath.cs
ソース:
GraphicsPath.cs

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

public:
 void Flatten();
public void Flatten ();
member this.Flatten : unit -> unit
Public Sub Flatten ()

例については、「Flatten(Matrix, Single)」を参照してください。

適用対象

Flatten(Matrix)

ソース:
GraphicsPath.cs
ソース:
GraphicsPath.cs
ソース:
GraphicsPath.cs

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

public:
 void Flatten(System::Drawing::Drawing2D::Matrix ^ matrix);
public void Flatten (System.Drawing.Drawing2D.Matrix matrix);
public void Flatten (System.Drawing.Drawing2D.Matrix? matrix);
member this.Flatten : System.Drawing.Drawing2D.Matrix -> unit
Public Sub Flatten (matrix As Matrix)

パラメーター

matrix
Matrix

平坦化の前に Matrix を変換する GraphicsPath

例については、「Flatten(Matrix, Single)」を参照してください。

適用対象

Flatten(Matrix, Single)

ソース:
GraphicsPath.cs
ソース:
GraphicsPath.cs
ソース:
GraphicsPath.cs

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

public:
 void Flatten(System::Drawing::Drawing2D::Matrix ^ matrix, float flatness);
public void Flatten (System.Drawing.Drawing2D.Matrix matrix, float flatness);
public void Flatten (System.Drawing.Drawing2D.Matrix? matrix, float flatness);
member this.Flatten : System.Drawing.Drawing2D.Matrix * single -> unit
Public Sub Flatten (matrix As Matrix, flatness As Single)

パラメーター

matrix
Matrix

平坦化の前に Matrix を変換する GraphicsPath

flatness
Single

曲線とそれを平坦化した近似線との間で許容される最大の誤差を指定します。 既定値は 0.25 です。 平坦化の値を小さくすると、近似線の線分の数が増加します。

次のコード例は、Windows フォームで使用するように設計されており、イベント オブジェクトがOnPaint必要PaintEventArgseです。 コードは、次のアクションを実行します。

  • グラフィックス パスと変換マトリックスを作成します。

  • 4 つの点を使用してパスに曲線を追加します。

  • 黒いペンを使用して、画面へのパス (曲線) を描画します。

  • 曲線を 10 ピクセル下にシフトし、フラット化します。

  • 赤いペンを使用して、画面に曲線を描画します。

赤い曲線には、点を結ぶ線がフラット化されていることに注意してください。

private:
   void FlattenExample( PaintEventArgs^ e )
   {
      GraphicsPath^ myPath = gcnew GraphicsPath;
      Matrix^ translateMatrix = gcnew Matrix;
      translateMatrix->Translate( 0, 10 );
      Point point1 = Point(20,100);
      Point point2 = Point(70,10);
      Point point3 = Point(130,200);
      Point point4 = Point(180,100);
      array<Point>^ points = {point1,point2,point3,point4};
      myPath->AddCurve( points );
      e->Graphics->DrawPath( gcnew Pen( Color::Black,2.0f ), myPath );
      myPath->Flatten( translateMatrix, 10.0f );
      e->Graphics->DrawPath( gcnew Pen( Color::Red,1.0f ), myPath );
   }
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);
}
Public Sub FlattenExample(ByVal 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, 10.0F)
    e.Graphics.DrawPath(New Pen(Color.Red, 1), myPath)
End Sub
'FlattenExample

適用対象