Freigeben über


Antialiasing bei Linien und Kurven

Wenn Sie Windows GDI+ zum Zeichnen einer Linie verwenden, geben Sie den Start- und Endpunkt der Linie an, aber Sie müssen 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.

Betrachten Sie eine gerade rote Linie, die vom Punkt (4, 2) zum Punkt (16, 10) reicht. 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:

Abbildung, die einfarbige rote Pixel auf einem mehrfarbigen Hintergrund zeigt

Beachten Sie, dass die zum Rendern der Linie verwendeten roten Pixel undurchsichtig sind. An der Darstellung der Linie sind keine teilweise transparenten Pixel beteiligt. Diese Art des Zeilenrenderings verleiht der Linie ein gezacktes Aussehen, und die Linie sieht ein wenig wie eine Treppe aus. Die Technik, eine Linie mit einer Treppe darzustellen, wird als Aliasing bezeichnet. Die Treppe ist ein Alias für die theoretische Linie.

Eine komplexere Technik zum Rendern einer Linie umfasst die Verwendung teilweise transparenter Pixel zusammen mit reinen roten Pixeln. Pixel werden auf reines Rot oder auf eine Mischung aus Rot und der 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 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:

Abbildung mit Pixeln, die rot auf demselben Hintergrund sind

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

Abbildung einer Ellipse, die aus verschiedenen Schattierungen von blauen Pixeln auf weißem Hintergrund besteht

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

Screenshot von zwei Auslassungspunkten: die mit Antialiasing erscheint spürbar glatter

Um Linien und Kurven zu zeichnen, die Antialiasing verwenden, erstellen Sie ein Graphics-Objekt , und übergeben Sie SmoothingModeAntiAlias an die Graphics::SetSmoothingMode-Methode . Rufen Sie dann eine der Zeichnungsmethoden des gleichen Graphics-Objekts auf.

myGraphics.SetSmoothingMode(SmoothingModeAntiAlias);
myGraphics.DrawLine(&myPen, 0, 0, 12, 8);

SmoothingModeAntiAlias ist ein Element der SmoothingMode-Enumeration .