Suavizado de contorno con líneas y curvas

Cuando se usa GDI+ para dibujar una línea, proporciona el punto inicial y el final de la línea, pero no es necesario que proporcione 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.

Establecimiento de alias

Considere la 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.

Línea, sin suavizado de contorno

Los píxeles rojos usados para representar la línea son opacos. No hay píxeles parcialmente transparentes en la línea. Este tipo de representación de líneas da a la línea un aspecto escalonado, y la línea parece algo así 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.

Suavizado de contorno

Una técnica más sofisticada para representar una línea implica el uso de píxeles parcialmente transparentes junto con píxeles opacos. Los píxeles se establecen en rojo puro, o en una mezcla de rojo y el color de fondo, en función de lo próximos que estén a 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.

Suavizado de contorno de una línea

El suavizado de contorno, también denominado anti-aliasing, también se puede aplicar a las curvas. En la ilustración siguiente se muestra una vista ampliada de una elipse suavizada.

Suavizado de contorno de curvas

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

Ejemplo de suavizado de contorno

Para dibujar líneas y curvas que usen el suavizado de contorno, cree una instancia de la clase Graphics y establezca su propiedad SmoothingMode en AntiAlias o HighQuality. Después, llame a uno de los métodos de dibujo de esa misma clase Graphics.

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

Consulte también