Antialiasing bei Linien und Kurven
Wenn Sie GDI+ verwenden, um eine Linie zu zeichnen, geben Sie den Start- und Endpunkt der Linie an, müssen aber keine Informationen zu den einzelnen Pixeln in der Linie angeben. GDI+ arbeitet mit der Anzeigetreibersoftware zusammen, um zu bestimmen, welche Pixel aktiviert werden, um die Linie auf einem bestimmten Anzeigegerät anzuzeigen.
Aliase
Sehen Sie sich die gerade rote Linie zwischen den Punkten (4, 2) und (16, 10) an. Angenommen, das Koordinatensystem hat seinen Ursprung in der linken oberen Ecke, und als Maßeinheit werden Pixel verwendet. Nehmen Sie außerdem an, dass die x-Achse nach rechts und die y-Achse nach unten zeigt. Die folgende Abbildung enthält eine vergrößerte Darstellung der gezeichneten roten Linie auf einem mehrfarbigen Hintergrund:
Die roten Pixel, die zum Rendern der Linie verwendet werden, sind undurchsichtig. Die Linie enthält keine teilweise transparenten Pixel. Diese Art des Linienrenderings führt zu einer gezackten Darstellung, die ein wenig an eine Treppe erinnert. Die Technik, eine Linie mit einer Treppe darzustellen, wird als Aliasing bezeichnet. Die Treppe ist ein Alias für die theoretische Linie.
Antialiasing
Eine komplexere Technik zum Rendern einer Linie beinhaltet die Verwendung einer Kombination aus teilweise transparenten Pixeln und undurchsichtigen Pixeln. Pixel werden abhängig von ihrem Abstand zur Linie auf reines Rot oder auf eine Mischung aus Rot und Hintergrundfarbe festgelegt. Diese Art von Rendering wird als Antialiasing bezeichnet und führt zu einer Linie, die vom menschlichen Auge als stufenloser wahrgenommen wird. Die folgende Abbildung zeigt, wie bestimmte Pixel mit dem Hintergrund gemischt werden, um eine Linie mit Antialiasing zu erzeugen:
Antialiasing wird auch als Kantenglättung bezeichnet und kann auch auf Kurven angewendet werden. Die folgende Abbildung zeigt eine vergrößerte Ansicht einer geglätteten Ellipse:
Die folgende Abbildung zeigt die gleiche Ellipse in ihrer tatsächlichen Größe – einmal ohne Antialiasing und einmal mit:
Wenn Sie Linien und Kurven mit Antialiasing zeichnen möchten, erstellen Sie eine Instanz der Graphics-Klasse, und legen Sie die SmoothingMode-Eigenschaft auf AntiAlias oder HighQuality fest. Rufen Sie dann eine der Zeichenmethoden der gleichen Graphics-Klasse auf.
myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)
Siehe auch
.NET Desktop feedback
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für