Otevřené a uzavřené křivky v GDI+
Následující obrázek znázorňuje dvě křivky: jednu otevřenou a jednu uzavřenou.
Spravované rozhraní pro křivky
Uzavřené křivky mají vnitřní prostor, a proto mohou být naplněny kartáčem. Třída Graphics v GDI+ poskytuje následující metody pro vyplnění uzavřených obrazců a křivek: FillRectangle, , FillPieFillEllipse, FillPolygon, FillClosedCurve, FillPath, a FillRegion. Kdykoli zavoláte některou z těchto metod, musíte jako argument předat jeden z konkrétních typů štětců (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrushnebo PathGradientBrush).
Tato FillPie metoda je společníkem metody DrawArc . Stejně jako DrawArc metoda nakreslí část obrysu tří teček, FillPie metoda vyplní část vnitřní části tří teček. Následující příklad nakreslí oblouk a vyplní odpovídající část interiéru elipsy:
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)
Následující obrázek znázorňuje oblouk a vyplněný výsečový graf.
Tato FillClosedCurve metoda je společníkem metody DrawClosedCurve . Obě metody automaticky zavírají křivku propojením koncového bodu s výchozím bodem. Následující příklad nakreslí křivku, která prochází (0, 0), (60, 20) a (40, 50). Pak se křivka automaticky uzavře připojením (40, 50) k počátečnímu bodu (0, 0) a vnitřní oblast se vyplní plnou barvou.
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)
Metoda FillPath vyplní interiéry samostatných částí cesty. Pokud část cesty neformuje uzavřenou křivku nebo obrazec, FillPath metoda před vyplněním automaticky zavře danou část cesty. Následující příklad nakreslí a vyplní cestu, která se skládá z oblouku, kardinality, řetězce a výsečového grafu:
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)
Následující obrázek znázorňuje cestu s plnou výplní a bez výplně. Všimněte si, že text v řetězci je osnova, ale není vyplněna metodou DrawPath . FillPath Je to metoda, která maluje interiéry znaků v řetězci.
Viz také
.NET Desktop feedback
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro