salut.
j'ai un dessin dans un JPanel(disons un rectangle ),et j'essaye de tracer un ligne dans ce Jpanel et je veux eviter de coupper le rectangle.
alors comment je peut detecter si un pixel est deja occuper par un autre dessin.merci d'avance.
salut.
j'ai un dessin dans un JPanel(disons un rectangle ),et j'essaye de tracer un ligne dans ce Jpanel et je veux eviter de coupper le rectangle.
alors comment je peut detecter si un pixel est deja occuper par un autre dessin.merci d'avance.
Il faut que tu conserves la position de ce rectangle, par exemple dans un objet de classe java.awt.Rectangle.
De cette façon, en traçant ta ligne, tu pourras faire tous les traitement nécessaires pour vérifier que tu ne coupe pas ton rectangle.
Sinon, un moyen assez simple est de dessiner le composant après la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public void paintComponent(Graphics g) { g.drawLine(...); // dessine en-dessous du reste super.paintComponent(g); // dessine des trucs g.drawLine(...); // dessine au-dessus du reste }
Il n'a a donc aucun moyen de savoir si un pixel est allumé ou eteint à l'écran ?
Salut,
Je trouve la technique de xavlours un peu "sale" (désolé) Parce qu'en fait, tu masques le fait que la ligne passe par le rectangle... Mais bon, ce n'est qu'un avis personnel et peut-être me trouveras-tu un peu présomptueux
![]()
Cela dis, c'est une idée, même si je préfères celle de gifffftane qui consiste ç garder la figure dessiné dans un Objet.
Pas que je sache à part faire une capture d'écran avec Robot et analyser l'image retournée.Envoyé par SheikYerbouti
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
et bien ça ne m'aide pas trop, parceque mon dessin ne contient pas que'une ligne et un rectangle(des centaine de ligne et plus de plus de vingtaine de rectangle )et les lignes ne devrait pas se couper les un les autre en plus les rectangles, donc faire un conserve de tous le dessain et le parcourir avant toute ajout d'une nouvelle ligne sera trés lourde a manipulé, et aussi le screen shot je ne pense pas que sa va aider parce que mon panel a une résolution de 4000*3000 ,et ne sera afficher que de maniere partielle, alors que des fois je devrait ajouter des lignes qui depasse la zone afficher.
mais merci quand memme. je vais essayer de trouver une optimisation pour ne pas parcourir tous le dessin ,parce qu'il me parait qu'il n'existe aucun autre solution.![]()
Partager