Antialiasing przy liniach i krzywych
W przypadku użycia interfejsu GDI+ do narysowania linii należy podać punkt początkowy i punkt końcowy wiersza, ale nie trzeba podawać żadnych informacji o poszczególnych pikselach w wierszu. GDI+ współpracuje z oprogramowaniem sterownika wyświetlacza w celu określenia, które piksele zostaną włączone, aby wyświetlić linię na określonym urządzeniu wyświetlającym.
Aliasowanie
Rozważ prostą czerwoną linię, która przechodzi od punktu (4, 2) do punktu (16, 10). Załóżmy, że układ współrzędnych ma swoje źródło w lewym górnym rogu i że jednostka miary jest pikselem. Załóżmy również, że oś x wskazuje na prawą, a oś y w dół. Na poniższej ilustracji przedstawiono powiększony widok czerwonej linii narysowanej na wielobarwnym tle.
Czerwone piksele używane do renderowania linii są nieprzezroczyste. W wierszu nie ma częściowo przezroczystych pikseli. Tego rodzaju renderowanie linii daje linii postrzępiony wygląd, i linia przypomina nieco schody. Ta technika reprezentowania linii z schodami jest nazywana aliasem; schody są aliasem dla linii teoretycznej.
Antialiasing
Bardziej zaawansowana technika renderowania linii obejmuje używanie częściowo przezroczystych pikseli wraz z nieprzezroczystymi pikselami. Piksele są ustawione na czystą czerwoną lub na mieszankę koloru czerwonego i tła, w zależności od tego, jak blisko znajdują się one w linii. Ten typ renderowania jest nazywany antyaliasingiem i prowadzi do linii, którą ludzkie oko postrzega jako bardziej gładkie. Na poniższej ilustracji pokazano, jak niektóre piksele są w połączeniu z tłem w celu utworzenia linii antyaliasedowej.
Antyaliasing, nazywany również wygładzeniem, można również stosować do krzywych. Na poniższej ilustracji przedstawiono powiększony widok wygładzonego wielokropka.
Na poniższej ilustracji przedstawiono ten sam wielokropek w rzeczywistym rozmiarze, raz bez antyaliasingu i raz z antyaliasingiem.
Aby narysować linie i krzywe używające antyaliasingu, utwórz wystąpienie klasy Graphics i ustaw jej właściwość SmoothingMode na AntiAlias lub HighQuality. Następnie wywołaj jedną z metod rysowania tej samej klasy Graphics.
myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)
Zobacz też
.NET Desktop feedback