GDI+'da Açık ve Kapalı Eğriler

Aşağıdaki çizimde iki eğri gösterilmektedir: bir açık ve bir kapalı.

Open & Closed curves

Eğriler için yönetilen arabirim

Kapalı eğrilerde bir iç yer vardır ve bu nedenle bir fırçayla doldurulabilirler. GraphicsGDI+ sınıfı, kapalı şekilleri ve eğrileri doldurmak için aşağıdaki yöntemleri sağlar: FillRectangle ,,, FillEllipseFillPie ,, FillPolygonFillClosedCurveFillPath , ve FillRegion . Bu yöntemlerden birini her çağırdığınızda, belirli fırça türlerinden birini (, SolidBrushHatchBrush ,, TextureBrushLinearGradientBrush veya PathGradientBrush ) bağımsız değişken olarak geçirmeniz gerekir.

FillPieYöntemi yöntemine yardımcı olur DrawArc . DrawArcYöntemin bir elipsin anahattının bir kısmını çizdiği gibi, FillPie yöntemi bir elipsin iç kısmının bir kısmını doldurur. Aşağıdaki örnek bir yay çizer ve elipsin iç kısmının ilgili bölümünü doldurur:

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)

Aşağıdaki çizimde yay ve doldurulmuş pasta gösterilmektedir.

Open & Closed curves

FillClosedCurveYöntemi yöntemine yardımcı olur DrawClosedCurve . Her iki yöntem de bitiş noktasını başlangıç noktasına bağlayarak eğriyi otomatik olarak kapatır. Aşağıdaki örnek (0, 0), (60, 20) ve (40, 50) arasında geçen bir eğri çizer. Daha sonra eğri, (40, 50) başlangıç noktasına (0, 0) bağlanarak otomatik olarak kapatılır ve iç kısım düz bir renkle doldurulur.

Point[] myPointArray =
{
    new Point(0, 0),
    new Point(60, 20),
    new Point(40, 50)
};
myGraphics.DrawClosedCurve(myPen, myPointArray);
myGraphics.FillClosedCurve(mySolidBrush, myPointArray);
Dim myPointArray As Point() = _
   {New Point(0, 0), New Point(60, 20), New Point(40, 50)}
myGraphics.DrawClosedCurve(myPen, myPointArray)
myGraphics.FillClosedCurve(mySolidBrush, myPointArray)

FillPathYöntemi, bir yolun ayrı parçalarının birbirine göre doldurulur. Bir yolun parçası kapalı bir eğri veya şekil oluşturmazsa, bu FillPath Yöntem doldurulmadan önce otomatik olarak yolun bu parçasını kapatır. Aşağıdaki örnek, bir yay, bir Kardinal eğri, bir dize ve bir pastadan oluşan bir yolu çizer ve doldurur:

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);
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)

Aşağıdaki çizimde, düz Dolgulu ve olmadan yol gösterilmektedir. Dizedeki metnin, yöntemi tarafından Seviyelendirilmiş, ancak doldurulmadığını unutmayın DrawPath . FillPathDizedeki karakterlerin birbirine boyayan yöntemdir.

String in a path

Ayrıca bkz.