Um eine ausgemalte Ellipse zu zeichnen, benötigst du einen Pinsel und das Platzierungsrechteck der Ellipse. Die Methode, die du verwendest, um eine gefüllte Ellipse zu zeichnen, heißt FillEllipse().
Color farbe = Color.Goldenrod; using (SolidBrush pinsel = new SolidBrush(farbe)) { g.FillEllipse(pinsel, Rectangle.Inflate(rechteck, -10, -10)); }
Zum Ausmalen einer Ellipse verwendest du ebenso wie zum Ausmalen eines Rechtecks einen Pinsel. Um eine Region einfarbig auszumalen, ist ein Pinsel der Art SolidBrush richtig.
Um einen Kreissektor oder einen Ellipsensektor auszumalen, verwendest du die Funktion FillPie(). Ebenso wie DrawPie() verwendet auch FillPie() einen Startwinkel und einen Drehwinkel, um den Ellipsensektor vollständig zu spezifizieren:
Color farbe = Color.MediumAquamarine; using (SolidBrush pinsel = new SolidBrush(farbe)) { g.FillPie(pinsel, Rectangle.Inflate(rechteck, -10, -10), -30.0f, 115.0f); }
Der ausgefüllte Kreissektor sieht so aus:
Probiere dieses Beispiel auch mit Kantenglättung aus! Du wirst bemerken, dass Kantenglättung die deutlich sichtbaren Sprünge in der fast senkrecht verlaufenden Linie stark abmildert. Kantenglättung wirkt nicht nur auf Linien, sondern ebenso auch auf die Ränder einer ausgefüllten Figur.
Wenn eine Figur sowohl ausgefüllt als auch umrandet werden soll, musst du beides programmieren:
Rectangle platzierungsrechteck = Rectangle.Inflate(rechteck, -10, -10); // Sektor ausfüllen: using (SolidBrush pinsel = new SolidBrush(Color.MediumAquamarine)) { g.FillPie(pinsel, platzierungsrechteck, -30.0f, 115.0f); } // Sektor umranden: using (Pen stift = new Pen(Color.Firebrick, 3.0f)) { g.DrawPie(stift, platzierungsrechteck, -30.0f, 115.0f); }
Hier benötigst du das Platzierungsrechteck zweimal. Es ist in dieser Situation geschickt, das Platzierungsrechteck nur einmal auszurechnen und zur mehrfachen Verwendung zu speichern.
Wenn dir die deutlich sichtbaren Sprünge in der fast senkrecht verlaufenden Linie nicht gefallen, solltest du Kantenglättung verwenden.