Vyhlazení u čar a křivek
Při kreslení čáry pomocí GDI+ zadáte počáteční a koncový bod čáry, ale nemusíte zadávat žádné informace o jednotlivých pixelech na čáře. GDI+ funguje ve spojení se softwarem ovladače displeje a zjišťuje, které pixely budou zapnuté, aby se čára zobrazila na konkrétním zobrazovacím zařízení.
Používání aliasů
Představte si rovnou červenou čáru, která směřuje od bodu (4, 2) k bodu (16, 10). Předpokládejme, že souřadnicový systém má svůj původ v levém horním rohu a že měrná jednotka je pixel. Předpokládejme také, že osa x odkazuje vpravo a osa y směřuje dolů. Následující obrázek znázorňuje zvětšené zobrazení červené čáry nakreslené na vícebarevném pozadí.
Červené pixely použité k vykreslení čáry jsou neprůžné. V řádku nejsou žádné částečně průhledné pixely. Tento typ vykreslování čar dává čáru zašroubovaný vzhled a čára vypadá trochu jako schodiště. Tato technika představuje přímku se schodištěm se nazývá aliasing; schodiště je alias pro teoretickou přímku.
Antialiasing
Složitější technika vykreslování čáry zahrnuje použití částečně průhledných pixelů spolu s neprůhlednými pixely. Pixely jsou nastavené na čistou červenou nebo na kombinaci červené barvy a barvy pozadí v závislosti na tom, jak blízko jsou čáry. Tento typ vykreslování se nazývá antialiasing a má za následek přímku, kterou lidské oko považuje za plynulejší. Následující obrázek znázorňuje, jak se určité pixely prolínají s pozadím, aby vznikla antialiased čára.
Antialiasing, označovaný také jako vyhlazování, lze použít také na křivky. Následující obrázek znázorňuje zvětšené zobrazení vyhlazení tří teček.
Následující obrázek znázorňuje stejnou elipsu ve skutečné velikosti, jednou bez antialiasingu a jednou s antialiasingem.
Chcete-li nakreslit čáry a křivky, které používají antialiasing, vytvořte instanci Graphics třídy a nastavte její SmoothingMode vlastnost na AntiAlias nebo HighQuality. Potom zavolejte jednu z metod kreslení stejné Graphics třídy.
myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)
Viz také
.NET Desktop feedback
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro