[Java] Antialiasing en gráficos

Cuando por defecto se pinta un gráfico en Java se aprecia que por defecto no le aplica ningún filtro antialising.

Dicho de otra forma, y como se aprecia en la imagen, cuando un objeto no tiene aplicado el antialiasing éste aparece con los bordes muy marcados, pareciendo que el objeto ha sido «recortado» y no ha sido pulido/suavizado. A continuación mediante una simple línea en Java se consigue tener objetos como la segunda A de la imagen (el resultado es más explícito ahí por tener un zoom considerable).

Al pintar un círculo con el siguiente fragmento de código:

[code lang=»java»]
g.setColor(color);
g.fillOval((int)this.x, (int)this.y, this.ancho, this.alto);
[/code]

se obtiene el círculo siguiente:

Sin embargo, si arreglamos el fragmento anterior y lo dejamos como sigue:
[code lang=»java»]
Graphics2D g2 = (Graphics2D) g;
g2.addRenderingHints( new RenderingHints( RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON ) ); // Necesario para el antialiasing
g2.setColor(color);
g2.fillOval((int)this.x, (int)this.y, this.ancho, this.alto);
[/code]

Conseguimos el siguiente círculo:

El cual es evidente que queda bastante mejor que el anterior.

One comment to [Java] Antialiasing en gráficos

  • Bitacoras.com  says:

    Información Bitacoras.com…

    Valora en Bitacoras.com: Cuando por defecto se pinta un gráfico en Java se aprecia que por defecto no le aplica ningún filtro antialising. Dicho de otra forma, y como se aprecia en la imagen, cuando un objeto no tiene aplicado el antialiasing éste ap…..

Leave a reply Cancel reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Connect with Facebook