Salut à tous,

Dans le cadre de l'application que je suis en train de développer (type cartographie multicouches), j'ai besoin d'hachurer les polygones que je trace. J'ai donc créé la classe suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
public class Texture {
 
	private static final int width = 8;
 
	public static TexturePaint antislash(float thickness, Color c) {
		BufferedImage bi = new BufferedImage(width,width,BufferedImage.TYPE_INT_ARGB);
		Graphics2D g2d = bi.createGraphics();
		g2d.setColor(c);
		g2d.setStroke(new BasicStroke(thickness, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER));
		g2d.drawLine(0,0,width,width);
		Rectangle2D r = new Rectangle2D.Double(0.0, 0.0, (double)width, (double)width);
		TexturePaint tp = new TexturePaint(bi,r);
		return(tp);
	}
 
	public static TexturePaint slash(float thickness, Color c) {
		BufferedImage bi = new BufferedImage(width,width,BufferedImage.TYPE_INT_ARGB);
		Graphics2D g2d = bi.createGraphics();
		g2d.setColor(c);
		g2d.setStroke(new BasicStroke(thickness, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER));
		g2d.drawLine(0,width,width,0);
		Rectangle2D r = new Rectangle2D.Double(0.0, 0.0, (double)width, (double)width);
		TexturePaint tp = new TexturePaint(bi,r);
		return(tp);
	}
 
	public static TexturePaint cross(float thickness, Color c) {
		BufferedImage bi = new BufferedImage(width,width,BufferedImage.TYPE_INT_ARGB);
		Graphics2D g2d = bi.createGraphics();
		g2d.setColor(c);
		g2d.setStroke(new BasicStroke(thickness, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER));
		g2d.drawLine(0,width,width,0);
		g2d.drawLine(0,0,width,width);
		Rectangle2D r = new Rectangle2D.Double(0.0, 0.0, (double)width, (double)width);
		TexturePaint tp = new TexturePaint(bi,r);
		return(tp);
	}
 
}
Le problème c'est que les textures slash m'affichent des traits discontinus alors que les textures antislash et cross s'affichent correctement. Je peux également régler la transparence de mes dessins et là je remarque que un mini-trait existe. J'ai essayé en réglant l'épaisseur du trait(ou sans) ou l'espacement entre les hachures mais rien n'y fait. Seule solution, faire un trait avec des points de coordonnées (0,widht-1) et (width-1,0) (en gros, je dois retirer 1). Mais quand je change en transparence, je revois le problème.

J'ai essayé de faire tourner l'application sous Windows ou sous Linux (avec JRE5) mais rien ne change, le problème est toujours là...

C'est grave docteur ?

Merci d'avance à tous ceux qui auront une petite idée du problème