Freigeben über


Antialiasing mit Linien und Kurven

Wenn Sie GDI+ verwenden, um eine Linie zu zeichnen, geben Sie den Ausgangspunkt und den Endpunkt der Linie an, müssen aber keine Informationen zu den einzelnen Pixeln in der Linie angeben. GDI+ arbeitet in Verbindung mit der Anzeigetreibersoftware, um zu bestimmen, welche Pixel aktiviert werden, um die Linie auf einem bestimmten Anzeigegerät anzuzeigen.

Aliasing (Treppeneffekt)

Betrachten Sie die gerade rote Linie, die vom Punkt (4, 2) zum Punkt (16, 10) geht. Gehen Sie davon aus, dass das Koordinatensystem seinen Ursprung in der oberen linken Ecke hat und dass die Maßeinheit das Pixel ist. Gehen Sie auch davon aus, dass die X-Achse rechts und die Y-Achse nach unten zeigt. Die folgende Abbildung zeigt eine vergrößerte Ansicht der roten Linie, die auf einem mehrfarbigen Hintergrund gezeichnet wird.

Linie ohne Antialiasing

Die roten Pixel, die zum Rendern der Linie verwendet werden, sind undurchsichtig. Es gibt keine teilweise transparenten Pixel in der Zeile. Diese Art des Linienrenderings führt zu einer gezackten Darstellung, die ein wenig an eine Treppe erinnert. Diese Technik der Darstellung einer Linie mit einer Treppe wird als Aliasing bezeichnet; die Treppe ist ein Alias für die theoretische Linie.

Antialiasing (Kantenglättung)

Eine komplexere Technik zum Rendern einer Linie umfasst die Verwendung teilweise transparenter Pixel zusammen mit undurchsichtigen Pixeln. Pixel werden auf reines Rot oder auf eine Mischung aus Rot und Hintergrundfarbe festgelegt, je nachdem, wie nah sie an der Linie sind. Diese Art von Rendering wird als Antialiasing bezeichnet und führt zu einer Linie, die das menschliche Auge als glatter wahrnimmt. Die folgende Abbildung zeigt, wie bestimmte Pixel mit dem Hintergrund gemischt werden, um eine antialiasierte Linie zu erzeugen.

Antialiasing einer Linie

Antialiasing, auch als Glättung bezeichnet, kann auch auf Kurven angewendet werden. Die folgende Abbildung zeigt eine vergrößerte Ansicht einer geglätteten Ellipse.

Antialiasing bei Kurven

Die folgende Abbildung zeigt die gleiche Ellipse in ihrer tatsächlichen Größe, einmal ohne Antialiasing und einmal mit Antialiasing.

Antialiasing-Beispiel

Um Linien und Kurven zu zeichnen, die Antialiasing verwenden, erstellen Sie eine Instanz der Graphics Klasse, und legen Sie die SmoothingMode-Eigenschaft auf AntiAlias oder HighQualityfest. 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