Compartir a través de


Suavizado de contorno con líneas y curvas

Cuando usas Windows GDI+ para dibujar una línea, proporcionas el punto inicial y el punto final de la línea, pero no tienes que proporcionar información sobre los píxeles individuales de la línea. GDI+ funciona junto con el software del controlador de pantalla para determinar qué píxeles se activarán para mostrar la línea en un dispositivo de pantalla determinado.

Considere una línea roja recta que va desde el punto (4, 2) hasta el punto (16, 10). Supongamos que el sistema de coordenadas tiene su origen en la esquina superior izquierda y que la unidad de medida es el píxel. Suponga también que el eje X apunta hacia la derecha y el eje Y hacia abajo. En la ilustración siguiente se muestra una vista ampliada de la línea roja dibujada en un fondo multicolor.

Ilustración en la que se muestran píxeles rojos sólidos en un fondo multicolor

Tenga en cuenta que los píxeles rojos usados para representar la línea son opacos. No hay píxeles parcialmente transparentes implicados en mostrar la línea. Este tipo de representación de líneas da a la línea una apariencia escalonada y la línea se ve un poco como una escalera. Esta técnica de representar una línea con una escalera se denomina "efecto escalonado"; la escalera es un alias para la línea teórica.

Una técnica más sofisticada para representar una línea implica el uso de píxeles parcialmente transparentes junto con píxeles rojos puros. Los píxeles se establecen en rojo puro o en una mezcla de color rojo y el color de fondo en función de la proximidad de la línea. Este tipo de representación se denomina suavizado de contorno y da como resultado una línea que el ojo humano percibe como más suave. En la ilustración siguiente se muestra cómo se combinan determinados píxeles con el fondo para generar una línea suavizada.

ilustración en la que se muestran píxeles que son tonos rojos en el mismo fondo

El suavizado (suavizado) también se puede aplicar a las curvas. En la ilustración siguiente se muestra una vista ampliada de una elipse suavizada.

ilustración de una elipse formada por diferentes tonos de píxeles azules en un fondo blanco

En la ilustración siguiente se muestra la misma elipse en su tamaño real, con y sin suavizado de contorno.

captura de pantalla de dos puntos suspensivos: el que tiene suavizado de contornos aparece más suavemente

Para dibujar líneas y curvas que usan suavizado de contorno, cree un objeto Graphics y pase SmoothingModeAntiAlias a su método Graphics::SetSmoothingMode . A continuación, llame a uno de los métodos de dibujo de ese mismo objeto Graphics .

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

SmoothingModeAntiAlias es un elemento de la enumeración SmoothingMode .