GDI+의 개곡선 및 폐곡선
다음 그림은 개곡선 및 폐곡선을 보여 줍니다.
곡선의 관리 인터페이스
폐곡선에는 내부가 있기 때문에 브러시로 채울 수 있습니다. GDI+의 Graphics 클래스는 폐도형 및 폐곡선을 채우는 데 사용할 수 있도록 FillRectangle, FillEllipse, FillPie, FillPolygon, FillClosedCurve, FillPath 및 FillRegion 메서드를 제공합니다. 이러한 메서드 중 하나를 호출할 경우에는 항상 SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush 또는 PathGradientBrush 같은 특정 브러시 유형 중 하나를 인수로 전달해야 합니다.
FillPie 메서드는 DrawArc 메서드와 함께 사용됩니다. DrawArc 메서드가 타원의 윤곽선 부분을 그리는 것처럼 FillPie 메서드는 타원의 내부를 채웁니다. 다음 예제에서는 원호를 그리고 그에 대응하는 타원의 내부를 채웁니다.
myGraphics.FillPie(mySolidBrush, 0, 0, 140, 70, 0, 120)
myGraphics.DrawArc(myPen, 0, 0, 140, 70, 0, 120)
myGraphics.FillPie(mySolidBrush, 0, 0, 140, 70, 0, 120);
myGraphics.DrawArc(myPen, 0, 0, 140, 70, 0, 120);
다음 그림은 원호 및 채워진 원형을 보여 줍니다.
FillClosedCurve 메서드는 DrawClosedCurve 메서드와 함께 사용됩니다. 두 메서드는 모두 끝점을 시작점에 연결함으로써 자동으로 곡선을 닫습니다. 다음 예제에서는 (0, 0), (60, 20) 및 (40, 50)을 통과하는 곡선을 그립니다. 그러 다음 (40, 50)을 시작점인 (0, 0)에 연결하여 곡선을 자동으로 닫고 내부를 단색으로 채웁니다.
Dim myPointArray As Point() = _
{New Point(0, 0), New Point(60, 20), New Point(40, 50)}
myGraphics.DrawClosedCurve(myPen, myPointArray)
myGraphics.FillClosedCurve(mySolidBrush, myPointArray)
Point[] myPointArray =
{ new Point(0, 0), new Point(60, 20), new Point(40, 50) };
myGraphics.DrawClosedCurve(myPen, myPointArray);
myGraphics.FillClosedCurve(mySolidBrush, myPointArray);
FillPath 메서드는 경로에서 분리된 조각의 내부를 채웁니다. 경로의 한 부분이 폐곡선 또는 폐도형을 형성하지 않으면 FillPath 메서드는 채우기 전에 이 경로 부분을 자동으로 닫습니다. 다음 예제에서는 원호, 카디널 스플라인, 문자열 및 원형으로 구성된 경로를 그린 다음 채웁니다.
Dim mySolidBrush As New SolidBrush(Color.Aqua)
Dim myGraphicsPath As New GraphicsPath()
Dim myPointArray As Point() = { _
New Point(15, 20), _
New Point(20, 40), _
New Point(50, 30)}
Dim myFontFamily As New FontFamily("Times New Roman")
Dim myPointF As New PointF(50, 20)
Dim myStringFormat As New StringFormat()
myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180)
myGraphicsPath.AddCurve(myPointArray)
myGraphicsPath.AddString("a string in a path", myFontFamily, _
0, 24, myPointF, myStringFormat)
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110)
myGraphics.FillPath(mySolidBrush, myGraphicsPath)
myGraphics.DrawPath(myPen, myGraphicsPath)
SolidBrush mySolidBrush = new SolidBrush(Color.Aqua);
GraphicsPath myGraphicsPath = new GraphicsPath();
Point[] myPointArray = {
new Point(15, 20),
new Point(20, 40),
new Point(50, 30)};
FontFamily myFontFamily = new FontFamily("Times New Roman");
PointF myPointF = new PointF(50, 20);
StringFormat myStringFormat = new StringFormat();
myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180);
myGraphicsPath.AddCurve(myPointArray);
myGraphicsPath.AddString("a string in a path", myFontFamily,
0, 24, myPointF, myStringFormat);
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);
myGraphics.FillPath(mySolidBrush, myGraphicsPath);
myGraphics.DrawPath(myPen, myGraphicsPath);
다음 그림은 단색으로 채워진 부분과 그렇지 않은 부분을 갖는 경로를 보여 줍니다. DrawPath 메서드를 통해 문자열의 텍스트 윤곽은 그렸지만 채워지지 않았습니다. 문자열 문자의 내부를 칠하는 것은 FillPath 메서드입니다.
참고 항목
작업
참조
System.Drawing.Drawing2D.GraphicsPath