Le point est-il a l'interieur du polygone ?

Signaler
Messages postés
122
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
10 mars 2011
-
Messages postés
2
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
19 juin 2003
-
Hello !
Je fais un peu de Java (pas en applet), et j'ai une question pour les pros de la prog. J'ai un vecteur de points, qui forme un polygone fermé (carré, rectangle, triangle quelconque, polygone à 274 cotés, peu importe). Mon but est que lorsque je clique avec la souris à l'intérieur du polygone, il m'affiche dans le System.out.print "clic a l interieur".

Voilà, c tout :) . Je me suis dit qu'il devait bien exister une methode à qui on envoie un vecteur de points, et un point isolé, et hop, elle nous retourne un boolean.

Si jamais quelqu'un connait la technique pour y arriver, ou si quelqu'un sait où trouver l'information que je recherche, je suis preneur !!

Merci!!!

4 réponses

Messages postés
8
Date d'inscription
dimanche 10 novembre 2002
Statut
Membre
Dernière intervention
21 novembre 2002

Tu peux tester sa avec les JComponent

AffineTransform affineTransform = new AffineTransform();

//component est un JComponent paind dans la
//frame et non ajouté avec add de la frame
//component.paint(g de la frame) (surcharge de paint de la frame)

Shape sh = affineTransform.createTransformedShape(component.getBounds());

//x et y coordonnées de la souris
if(sh.contains(x,y))
System.out.println"clic à l'interieur"

Voir si avec ton polygone tu peux recuperer le shape()

bon courage
Messages postés
8
Date d'inscription
dimanche 10 novembre 2002
Statut
Membre
Dernière intervention
21 novembre 2002

pas paind mais peint
Messages postés
8
Date d'inscription
dimanche 10 novembre 2002
Statut
Membre
Dernière intervention
21 novembre 2002

Encore plus simple

Si component un JComponent et p ( coordonnées de la souris) alors :

if(component.getBounds().contains(Point p))
System.out.print "clic a l interieur"

Pour Polygon()
polygon.contains(Point p)
Messages postés
2
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
19 juin 2003

Salut,

il y a tout simplement la classe Polygon, dans java.awt ...
On lui fournit un tableau de X, un tableau de Y, le nombre de points, et la methode contains( x, y) permet de resoudre le probleme.

C'est vrai qu'il 'accepte que les entiers, alors si quelqu'un a la meme chose mais qui accepte les double ou les float, je suis preneur !

>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> Hello !
> Je fais un peu de Java (pas en applet), et j'ai une question pour les pros de la prog. J'ai un vecteur de points, qui forme un polygone fermé (carré, rectangle, triangle quelconque, polygone à 274 cotés, peu importe). Mon but est que lorsque je clique avec la souris à l'intérieur du polygone, il m'affiche dans le System.out.print "clic a l interieur".
>
> Voilà, c tout :) . Je me suis dit qu'il devait bien exister une methode à qui on envoie un vecteur de points, et un point isolé, et hop, elle nous retourne un boolean.
>
> Si jamais quelqu'un connait la technique pour y arriver, ou si quelqu'un sait où trouver l'information que je recherche, je suis preneur !!
>
> Merci!!!
>
>