GDI+'da Açık ve Kapalı Eğriler
Aşağıdaki çizimde iki eğri gösterilmektedir: biri açık, diğeri kapalı.
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.
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.
Ayrıca bkz.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin