Hacer una línea gruesa o punteada
Artículo por Club Developers · 31 mayo 2006
8131 vistas
Definir la medida del pincel:
Como siempre, con el objeto java.awt.Graphics2D definiremos la medida del pincel, el cual se aplicará a cualquier trazado realizado a partir del momento del cambio, ya sea con el método drawLine(..) o drawRect(...) o drawShape(...).
Puede sorprender que la medida del pincel sea un real, se hace dificil imaginar una línea de 2,5 pÃxels. Para entenderlo, bastará con imaginarnos el caso de una línea oblicua o el dibujar con el anti-aliasing activo.
Definir el tipo de línea:
Contrariamente a lo que puede parecer por su nombre, la clase java.awt.BasicStroke no es tan básica como esto. Además de la medida del pincel, permite la definición de líneas punteadas con varias longitudes de punteo, o definir cómo se gestionarán las intersecciones de las líneas de una milti-línea (shape),...
Veamos un pequeño ejemplo:
Como siempre, con el objeto java.awt.Graphics2D definiremos la medida del pincel, el cual se aplicará a cualquier trazado realizado a partir del momento del cambio, ya sea con el método drawLine(..) o drawRect(...) o drawShape(...).
java
/** definir un grosor de 5 pÃxels */ g2d.drawXXX(...);
Puede sorprender que la medida del pincel sea un real, se hace dificil imaginar una línea de 2,5 pÃxels. Para entenderlo, bastará con imaginarnos el caso de una línea oblicua o el dibujar con el anti-aliasing activo.
Definir el tipo de línea:
Contrariamente a lo que puede parecer por su nombre, la clase java.awt.BasicStroke no es tan básica como esto. Además de la medida del pincel, permite la definición de líneas punteadas con varias longitudes de punteo, o definir cómo se gestionarán las intersecciones de las líneas de una milti-línea (shape),...
Veamos un pequeño ejemplo:
java
float grosor = 3; /** medida de la lÃnea */ float[] style = {10,5}; /** los puntos serán 2 veces más largos que el espacio en blanco */     grosor,     BasicStroke.CAP_BUTT,     BasicStroke.JOIN_MITER,     10.0f,     style,     0     ));