Compartir a través de


Suavizado con líneas y curvas

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

Efecto de aliasing

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 a 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

Los píxeles rojos utilizados 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 una apariencia escalonada y la línea tiene un aspecto similar a una escalera. Esta técnica de representar una línea con una escalera se denomina aliasing; la escalera es un alias para la línea teórica.

Suavizado

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 alguna combinación de rojo y el color de fondo, dependiendo de la proximidad que estén a la línea. Este tipo de representación se denomina suavizado y da como resultado una línea que el ojo humano percibe como más fluida. En la ilustración siguiente se muestra cómo se mezclan determinados píxeles con el fondo para generar una línea antialias.

Suavizado de una línea

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

Suavizado de curvas

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

Ejemplo de antialiasing

Para dibujar líneas y curvas que usan suavizado, cree una instancia de la Graphics clase y establezca su SmoothingMode propiedad en AntiAlias o HighQuality. A continuación, llame a uno de los métodos de dibujo de la 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