Dessin sur plusieurs lignes dans une BufferedImage
Je suis en train de dessiner des lignes horizontales et verticales sur une bufferedimage. Il devrait finir par ressembler à une grille de cellules. Mais lorsque j'exécute le code, je ne vois que deux lignes: le plus à gauche de la ligne et de la première ligne (c'est à dire. une ligne de 0,0 à 0,la hauteur de l'image & 0,0 à la largeur de l'image,0) Voici l'extrait de code:
BufferedImage mazeImage = new BufferedImage(imgDim.width, imgDim.height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = mazeImage.createGraphics();
g2d.setBackground(Color.WHITE);
g2d.fillRect(0, 0, imgDim.width, imgDim.height);
g2d.setColor(Color.BLACK);
BasicStroke bs = new BasicStroke(2);
g2d.setStroke(bs);
//draw the black vertical and horizontal lines
for(int i=0;i<21;i++){
g2d.drawLine((imgDim.width+2)*i, 0, (imgDim.width+2)*i, imgDim.height-1);
g2d.drawLine(0, (imgDim.height+2)*i, imgDim.width-1, (imgDim.height+2)*i);
}
Et le remplacé méthode de peinture:
public void paint(Graphics g) {
g.drawImage(mazeImage, 0, 0, this);
}
Tout cela dans une classe appelée RobotMaze qui s'étend Composite. Toute aide est appréciée.
OriginalL'auteur Adith | 2010-10-12
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Andrew Thompson
Imprimer vos coordonnées et vous verrez que vous êtes à tracer des points à l'extérieur de la largeur et de la hauteur de l'image:
OriginalL'auteur dogbane
Comment voulez-vous que le résultat de
(imgDim.width+2)*i
à l'intérieur de l'image de limites si i > 0?OriginalL'auteur jarnbjo