Compartilhar via


Antialiasing com linhas e curvas

Quando você usa GDI+ para desenhar uma linha, você fornece o ponto inicial e final da linha, mas você não tem que fornecer informações sobre os pixels individuais na linha. GDI+trabalha em conjunto com o software de driver de vídeo para determinar quais pixels serão ativados para mostrar a linha em um dispositivo de exibição específico.

Serrilhado

Considere a linha reta vermelha que vai de ponto (4, 2) para o ponto (16, 10). Suponha que o sistema de coordenadas tem sua origem no canto superior esquerdo e que a unidade de medida é o pixel. Também assumem que o eixo x aponta para a direita e os pontos de eixo y para baixo. A ilustração a seguir mostra uma visualização ampliada da linha vermelha desenhada em um plano de fundo multicolorido.

Linha, sem suavização

Os pixels vermelhos usados para processar a linha são opacos. Não existem pixels parcialmente transparentes na linha. Esse tipo de processamento de linha proporciona a linha de uma aparência turva e a linha é um pouco como uma escada. Essa técnica de representar uma linha com uma escada é chamada de serrilhado; a escada é um alias para a linha teórica.

Suavização

Uma técnica mais sofisticada para o processamento de uma linha envolve o uso de pixels parcialmente transparentes com pixels opacos. Pixels são definidas como vermelho puro, ou para alguma mistura de vermelho e a cor de plano de fundo, dependendo de quão próximo estão na linha. Esse tipo de renderização é chamado de suavização e resulta em uma linha que considera o olho humano é mais suave. A ilustração a seguir mostra como alguns pixels são mescladas com o plano de fundo para produzir uma linha de fundo não suavizado.

Suavizando uma linha

Suavização, também chamada de suavização, também pode ser aplicada em curvas. A ilustração a seguir mostra uma visualização ampliada de uma elipse suavizada.

Suavizando curvas

A ilustração a seguir mostra a elipse mesma em seu tamanho real, uma vez sem suavização e uma vez com a suavização.

Exemplo de suavização

Para desenhar linhas e curvas de suavização, criar uma instância da Graphics de classe e defina seu SmoothingMode propriedade para AntiAlias ou HighQuality. Chamar um dos métodos de desenho de que mesmo Graphics classe.

        myGraphics.SmoothingMode = SmoothingMode.AntiAlias
        myGraphics.DrawLine(myPen, 0, 0, 12, 8)

myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);

Consulte também

Tarefas

Como: Usar Suavização com texto

Referência

System.Drawing.Drawing2D.SmoothingMode

Outros recursos

Linhas, curvas e formas