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

rekam Messages postés 122 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 10 mars 2011 - 19 nov. 2002 à 15:20
cs_Kangourou Messages postés 2 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 19 juin 2003 - 25 mars 2003 à 17:58
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

kkouros2 Messages postés 8 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 21 novembre 2002
21 nov. 2002 à 01:50
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
0
kkouros2 Messages postés 8 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 21 novembre 2002
21 nov. 2002 à 01:53
pas paind mais peint
0
kkouros2 Messages postés 8 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 21 novembre 2002
21 nov. 2002 à 21:38
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)
0
cs_Kangourou Messages postés 2 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 19 juin 2003
25 mars 2003 à 17:58
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!!!
>
>
0