GraphicsPath.Flatten 메서드

정의

이 경로에 있는 각 곡선을 연결된 일련의 선 세그먼트로 변환합니다.

오버로드

Flatten()

이 경로에 있는 각 곡선을 연결된 일련의 선 세그먼트로 변환합니다.

Flatten(Matrix)

지정된 변환을 적용한 다음 이 GraphicsPath에 있는 각 곡선을 연결된 일련의 선 세그먼트로 변환합니다.

Flatten(Matrix, Single)

GraphicsPath에 있는 각 곡선을 연결된 일련의 선 세그먼트로 변환합니다.

Flatten()

이 경로에 있는 각 곡선을 연결된 일련의 선 세그먼트로 변환합니다.

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

예제

예제를 보려면 Flatten(Matrix, Single)를 참조하세요.

적용 대상

Flatten(Matrix)

지정된 변환을 적용한 다음 이 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에 있는 각 곡선을 연결된 일련의 선 세그먼트로 변환합니다.

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 Forms 사용하도록 설계되었으며 이벤트 개체가 OnPaint 필요합니다 PaintEventArgs e. 코드는 다음 작업을 수행합니다.

  • 그래픽 경로 및 번역 행렬을 만듭니다.

  • 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

적용 대상