Antialiasing com linhas e curvas
Ao usar GDI+ para desenhar uma linha, você fornece o ponto inicial e o ponto final da linha, mas não precisa fornecer nenhuma informação sobre os pixels individuais na linha. GDI+ funciona em conjunto com o software do controlador de ecrã para determinar quais pixels serão ativados para mostrar a linha num dispositivo de vídeo específico.
Aliasing
Considere a linha vermelha reta que vai do ponto (4, 2) ao ponto (16, 10). Suponha que o sistema de coordenadas tem sua origem no canto superior esquerdo e que a unidade de medida é o pixel. Suponha também que o eixo x aponta para a direita e o eixo y aponta para baixo. A ilustração a seguir mostra uma visão ampliada da linha vermelha desenhada em um fundo multicolorido.
Os pixels vermelhos usados para renderizar a linha são opacos. Não há pixels parcialmente transparentes na linha. Esse tipo de renderização de linha dá à linha uma aparência irregular, e a linha se parece um pouco com uma escada. Esta técnica de representar uma linha com degraus é chamada de aliasing; os degraus são um substituto para a linha teórica.
Antialiasing
Uma técnica mais sofisticada para renderizar uma linha envolve o uso de pixels parcialmente transparentes junto com pixels opacos. Os pixels são definidos como vermelho puro ou com alguma mistura de vermelho e cor de fundo, dependendo de quão próximos eles estão da linha. Esse tipo de renderização é chamado de antialiasing e resulta em uma linha que o olho humano percebe como mais suave. A ilustração a seguir mostra como determinados pixels são misturados com o plano de fundo para produzir uma linha antialiased.
A antialiasing, também conhecida como suavização, pode também ser aplicada às curvas. A ilustração a seguir mostra uma visão ampliada de uma elipse suavizada.
A seguinte ilustração mostra a mesma elipse no seu tamanho real, uma vez sem antialiasing e outra com antialiasing.
Para desenhar linhas e curvas que usam suavização de serrilhado, crie uma instância da classe Graphics e defina sua propriedade SmoothingMode como AntiAlias ou HighQuality. Em seguida, chame um dos métodos de desenho dessa mesma classe Graphics.
myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)
Ver também
.NET Desktop feedback