Heim > Artikel > Backend-Entwicklung > C# GDI+ Programmierung (2)
Häufig verwendete Zeichenfunktionen
DrawArc zeichnet einen Bogen
Beispiel: Graphics.DrawArc(pen,0,0,200,200,90,120)
Der vorletzte Parameter stellt den Anfang dar Grad, und der letzte Parameter ist der aufgespannte Grad des Bogens. Beispielsweise ist der Anfangsgrad 90 und der Bogen umfasst 120 Grad
Der rote Wert ist der Bogen. Ähnliche Methoden umfassen DrawPie zum Zeichnen einer Fächerform und FillPie zum Füllen einer Fächerform. Alle verfügen über Einstiegsabschlüsse und übergreifende Abschlüsse.
DrawPolygon Polygon zeichnen
Beispiel: Point []pt=new Point[]{new Point(0,50),new Point(0,100),new Point(100,100)};
Graphics.DrawPolygon(pen, pt);
Punktarray gibt die Position jedes Punkts und die Anzahl der Punkte an. Das von DrawPolygon gezeichnete Polygon ist geschlossen und DrawPolygon verbindet automatisch den ersten und den letzten Punkt.
DrawCurve zeichnet kardinale Splines
Beispiel: Point[] pt = new Point[] { new Point(0, 0), new Point(100, 50),new Point(200, 0 )};
graphics.DrawCurve(pen, pt, 1.5f);
Der letzte Parameter stellt den Spannungswert dar. Ich weiß nicht viel über diese Zeichenfunktion funktioniert. Es ist etwas passiert. Man kann sagen, dass es nicht frei verwendet werden kann.
Es müssen mindestens drei Punkte vorhanden sein, um eine Kurve zu bilden. Sie sehen ein Bild, das ich aus dem GDI+-Referenzmaterial kopiert habe.
DrawBezier zeichnet Bezier-Splines
Beispiel: Graphics.DrawBezier(pen, 100, 0, 200, 20, 0, 80, 100, 100)
Bezier Der Searle-Spline besteht aus vier Punkten. Der erste und der letzte Punkt fungieren als zwei Punkte der geraden Linie, während die anderen beiden Punkte als Magnete wirken. Die Linie verläuft zwar nicht durch diese beiden Magnetpunkte,
aber diese beiden Magnetpunkte saugen darauf zu. Dadurch entsteht ein Bessel-Spline.
Path GraphicsPath
GraphicsPath-Klassenattribut System.Drawing.Drawing2D-Namespace
Der Pfad besteht aus verschiedenen Linien. Dann kann das Rechteck auch als aus vier zusammengesetzt betrachtet werden Neben geraden Linien kann man sich einen Kreis auch so vorstellen, dass er aus mehreren Bögen besteht.
Die GraphicsPath-Klasse verfügt also über Pfadfunktionen zum Hinzufügen verschiedener Formen, wie z. B. den linearen Pfad „AddLine“, den elliptischen Pfad „AddEllipse“, den rechteckigen Pfad „AddRectangle“, den Pfad „AddBezier“ und den Pfad „AddString“.
Diese Pfade werden hinzugefügt, natürlich sind sie nicht sichtbar. Wir können die DrawPath-Funktion in der Graphics-Klasse verwenden, um die Flugbahn des Pfades mit einem Pinsel zu beschreiben.
Sehen Sie sich das Beispiel an:
private void formPaint(Object sender, PaintEventArgs e)
{ Graphics Graphics = e.Graphics;
P en pen = new Pen (Color. FromArgb(0, 255, 0), 2);
Rechteck rect = neues Rechteck(10, 10, 100, 100);
GraphicsPath grcPath = new GraphicsPath();
grcPath.AddRectangle (rect) ;
grcPath.AddEllipse(rect); ath.AddString("A", famFont, (int) FontStyle.Underline, 80f, rect, null);
//Pfad zeichnen
Grafiken. DrawPath(pen, grcPath);
}
PathGradientBrush
Anwendungsbeispiel:
private void formPaint(Object sender, PaintEventArgs e)
{
//Pfad erstellen
GraphicsPath path = new GraphicsPath();
Rechteck rect = new Rechteck(0, 0, 100, 100);
path.AddRectangle(rect);
//Erstelle einen Pfadpinsel
PathGradientBrush brush = new PathGradientBrush(path);
// Die Mittelpunktfarbe ist weiß
Pinsel. CenterColor = Color.White;
//Die Farbe auf dem Pfad (Punkt) ist Schwarz
brush.SurroundColors = new Color[] { Color.Black };
//Füllen Sie ein Rechteck mit dem Pfadpinsel
e.Graphics.FillRectangle(brush, rect);
}
Die Farbe des Mittelpunkts oben ist weiß und die Farbe auf dem Pfad (Punkt) ist schwarz, also von der Mittelpunkt zu jedem Die Punkte auf dem Pfad haben alle einen Farbverlauf von Weiß nach Schwarz.
Sie können den Mittelpunkt auch selbst angeben. Wenn Sie nicht den von PathGradientBrush berechneten Mittelpunkt verwenden möchten, geben Sie einfach CenterPoint an, z. B.brush.CenterPoint = new Point(20, 50);
Es gibt viele Pfadpinsel Eine Vielzahl von Farbverläufen
Mehrere Farbverläufe wurden in der vorherigen linearen Verlaufsmalerei eingeführt, daher ist auch der Pfad mehrerer Farbverläufe ähnlich :
Private Void Formpaaint (Object Sender, Painteventargs E)
{
// Pfad erstellen
GraphicSpath Path = New Graphicspath (
RECTANGLE RECT = Neues Rechteck (0, 0, 100, 100 );
path.AddRectangle(rect);
//Erstelle einen Pfadpinsel
PathGradientBrush brush = new PathGradientBrush(path);
// Mehrere Farben angeben
color_blend.colors = neue Farbe [] {color.red, color.green, color.white};
/// /Geben Sie den Farbbereich an
color_blend.Positions=new float[]{0/3f,2/3f,3/3f}; InterpolationColors Pinsel füllt ein Rechteck
e.Graphics.FillRectangle(brush, rect);
}
Die Farbe des Mittelpunkts ist die letzte im Array color_blend.Colors, die Sie vom Mittelpunkt aus platzieren können Zu jedem Punkt auf dem Weg wird sie als gerade Linie betrachtet. Dann sind zwei Drittel dieser Linie der Farbverlauf von welcher Farbe zu welcher Farbe und ein Drittel der Farbverlauf von welcher Farbe zu welcher Farbe.
Das Obige ist der Farbverlaufsbereich von Rot nach Grün: 0 bis 2/3, Grün bis Weiß (Mittelpunktfarbe): 2/3 bis 1. Angenommen, die Länge der gesamten geraden Linie wird durch ersetzt 1. Darüber hinaus kann auch die Mittelpunktposition individuell angepasst werden.
private void formPaint(Object sender, PaintEventArgs e)
{
Rechteck rect = neues Rechteck(0, 0, 100, 100);
Punkt []pts =neuer Punkt[]{neuer Punkt (50,0),new Point(0,100),new Point(100,100)};
PathGradientBrushbrush=new PathGradientBrush(pts);
//Center Color
brush.CenterColor=brush Color.White;
🎜 >Diese Art von Grafik, die aus Punkten besteht, wird auch direkt vom Pfadpinsel erstellt, ohne GraphicsPath zu übergeben Füllung, aber der Füllbereich ist auf die durch diese Punkte gebildeten Grafiken beschränkt. Genau wie oben wird dieser Pinsel zum Füllen eines Rechtecks verwendet,
, aber der Teil hinter der Dreiecksform wird nicht gefüllt. Dies ist dasselbe wie der Grafikpfad, beschränkt sich jedoch auf das Ausfüllen des Pfads. Diese Grafikerstellung kann auch über GraphicsPath abgeschlossen werden, beispielsweise über die Polygonpfadfunktion AddPolygon. Füllen Sie es dann mit der FillPolygon-Funktion in der Graphics-Klasse.
{
//Pfad erstellenGraphicsPath path = new GraphicsPath();
Rechteck rect = neues Rechteck(0, 0, 100, 100); Point[] pts = neuer Punkt[] { neuer Punkt(50, 0), neuer Punkt(0, 100), neuer Punkt(100, 100 )};
path.AddLines(pts);
PathGradientBrush brush = new PathGradientBrush(path);
//Center color
brush.CenterColor =Color.White;
//Path The Farbe auf dem Punkt
brush.SurroundColors=new Color[]{Color.Black};
e.Graphics.FillPath(brush, path);
}
private void formPaint(Object sender, PaintEventArgs e)
{
//Pfad erstellen
GraphicsPath path = new GraphicsPath();
Rechteck rect = new Rechteck(0, 0, 100, 100);
path.AddRectangle(rect);
//Erstelle einen Pfadpinsel
PathGradientBrush brush = new PathGradientBrush(path);
// Die Mittelpunktfarbe ist weiß
Pinsel. CenterColor = Color.White;
Verwenden Sie den Pfadpinsel, um ein Rechteck zu füllen
e.Graphics.FillRectangle(brush, rect);
}
Die Farben an den vier Eckpunkten können sein ungefähr mit den Augen gesehen: Schwarz, Rot, Blau, Grün. Entspricht den vier Eckpunkten oben links (0,0), oben rechts (100, 0), unten rechts (100, 100) und
unten links (0, 100).
Lassen Sie uns darüber sprechen, wie dieser Verlaufspinsel aussieht oder worauf er basiert. Zunächst wird der Eckpunkt (0, 0) in SurroundColos als Color.Black bezeichnet, und der
Eckpunkt (100, 0) wird als Color.Red bezeichnet, und diese beiden Punkte können zu a verbunden werden Gerade. Auch diese gerade Linie weist einen Verlauf von Schwarz nach Rot auf. Und diese gerade Linie liegt auf dem Weg.
Dann hat jeder Punkt auf diesem Pfad (gerade Linie) eine andere Farbe.
Zum Beispiel ist (0, 0) schwarz, (1, 0) ist ein helleres Schwarz. . . . . (99,0) ist dunkelrot (100,0) ist rot.
Die Farbe des Mittelpunkts ist Weiß, daher ist die gerade Linie vom Mittelpunkt bis 0,0 ein Farbverlauf von Weiß nach Schwarz und bis (1,0) ein Farbverlauf von Weiß zu hellerem Schwarz .
Das Gleiche gilt für die Verläufe an anderen Eckpunkten.
Nach diesen Regeln wird der obige Farbverlauf gebildet.
Ein weiteres Dreiecksbeispiel:
private void formPaint(Object sender, PaintEventArgs e)
{ //Pfad erstellen
GraphicsP ath path = new GraphicsPath( Point []pts = new Point[] { new Point(50, 0), new Point(0, 100), new Point(100, 100) };
path.AddLines(pts);
PathGradientBrushbrush=new PathGradientBrush(path);
//Mittelfarbe Weiß
//Eckenfarbe: Rot, Grün, Blau.
brush.surrourroundcolors = neue Farbe [] {color.red, color.green, color.blue};
// Pfad zum Malen verwenden
e.Graphics.fillpath (brush, path);
}
Nachdem Sie die oben genannten Wissenspunkte verstanden haben, können Sie versuchen, ein Beispiel für eine fünfzackige Sternform zu erstellen (verwenden Sie einen Pfadverlaufspinsel und verwenden Sie verschiedene Eckpunktfarben).
Weitere Artikel zum Thema C# GDI+ Programmierung (2) finden Sie auf der chinesischen PHP-Website!