Hacer una línea gruesa o punteada

7957 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(...).



java
  1. Graphics2D g2d =...;
  2. /** definir un grosor de 5 pÃxels */
  3. g2d.setStroke(new BasicStroke( 5.0f ));
  4. 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
  1. Graphics2D g2d =...;
  2. float grosor = 3; /** medida de la línea */
  3. float[] style = {10,5}; /** los puntos serán 2 veces más largos que el espacio en blanco */
  4. g2d.setStroke( new BasicStroke(
  5.         grosor,
  6.         BasicStroke.CAP_BUTT,
  7.         BasicStroke.JOIN_MITER,
  8.         10.0f,
  9.         style,
  10.         0
  11.         ));