GraphicsPath.Flatten メソッド

定義

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

オーバーロード

Flatten()

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

Flatten(Matrix)

指定した変換を適用し、この GraphicsPath 内の各曲線を一連の接続された線分に変換します。

Flatten(Matrix, Single)

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

Flatten()

ソース:
GraphicsPath.cs
ソース:
GraphicsPath.cs
ソース:
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.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

フラット化する前にこの GraphicsPath を変換する Matrix

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

適用対象

Flatten(Matrix, Single)

ソース:
GraphicsPath.cs
ソース:
GraphicsPath.cs
ソース:
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

フラット化する前にこの GraphicsPath を変換する Matrix

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

適用対象