Aracılığıyla paylaş


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

Aşağıdaki çizimde iki eğri gösterilmektedir: biri açık, diğeri kapalı.

Screenshot of one open curve and one closed curve.

Eğriler için Yönetilen Arabirim

Kapalı eğriler bir iç kısıma sahiptir ve bu nedenle bir fırça ile doldurulabilir. Graphics GDI+ içindeki sınıfı, kapalı şekilleri ve eğrileri doldurmak için aşağıdaki yöntemleri sağlar: FillRectangle, FillEllipse, FillPie, FillPolygon, FillClosedCurve, FillPath, ve FillRegion. Bu yöntemlerden birini her çağırdığınızda, bağımsız değişken olarak belirli fırça türlerinden birini (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrushveya PathGradientBrush) geçirmeniz gerekir.

FillPie yöntemi, yöntemin bir eşlikçisidirDrawArc. Yöntemin DrawArc üç noktanın ana hattının bir kısmını çizdiği gibi, FillPie yöntem de bir elips iç kısmını doldurur. Aşağıdaki örnek bir yay çizer ve üç noktanın iç kısmı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.

Screenshot of an arc and the filled pie.

FillClosedCurve yöntemi, yöntemin bir eşlikçisidirDrawClosedCurve. Her iki yöntem de bitiş noktasını başlangıç noktasına bağlayarak eğriyi otomatik olarak kapatır. Aşağıdaki örnekte (0, 0), (60, 20) ve (40, 50) geçen bir eğri çizilir. Ardından, (40, 50) başlangıç noktasına (0, 0) bağlanarak eğri 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)

yöntemi, FillPath bir yolun ayrı parçalarının iç kısımlarını doldurur. Yolun bir parçası kapalı bir eğri veya şekil oluşturmazsa, FillPath yöntem yolu doldurmadan önce yolun bu parçasını otomatik olarak kapatır. Aşağıdaki örnek bir yay, bir kardinal spline, bir dize ve pastadan oluşan bir yol ç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 dolgu içeren ve olmayan yol gösterilmektedir. Dizedeki metnin yöntemiyle DrawPath özetlendiğini, ancak doldurulmadığını unutmayın. Dizedeki FillPath karakterlerin iç kısımlarını boyaan yöntemdir.

String in a path

Ayrıca bkz.