Est il possible de savoir si on clique sur une ligne dessiné a l'ecran? [Résolu]

Signaler
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006
-
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006
-
Bonjour



J'ai 2 point de type Point p1,p2. Ensuite je dessine la ligne ayant
pour extremité c'est 2 point. : g.drawLine(p1.x,p1.y,p2.x,p2.y) ;

Alors ma question est la suivante, si je clique sur la ligne avec ma
souris, y a 't'il moyen de savoir que je clique sur la droite?? dison
une fonction prédéfini .



Sinon j'ai trouvé un autre moyen, suffit d'appliqué la relation y=ax+b
et de verifier avec les coord de la souris ,mais bon , si il existe une
fonction deja toute faite ^^



Merci d'avance pour les futurs réponses.

11 réponses

Messages postés
5351
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
17 août 2020
97
Salut,





qd tu dessine une ligne tu utilise g.drawLine(p1.x,p1.y,p2.x,p2.y) ; donc tu as les coordonées précise de la ligne.... :P



persone je ne pense vraiment pas que tu ai une methode qui te dise que tu clique sur cette ligne


WORA
Messages postés
54
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 avril 2006
1
je crois aussi qu'il faut que tu créé ta propre fonction test grelon , un truc du genre:

public boolean onDroite (p_clicked)
{
return p_clicked.y = = a * p_clicked + b; //en supposant que a et b son connus..
}

mais après ce dépend beaucoup de ton code, et tu fais genre :
public void mouseClicked(MouseEvent e) {
if(onDroite(new Point(e.getX(),e.getY())))
{
//sur la ligne
}
else
{
//pas dessus
}
}
bon ya peut etre des erreurs mais je fais ca vite fais aussi ...
Messages postés
5351
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
17 août 2020
97
Salut,



sachant que tu as les coordonnées de ta ligne tu peux utiliser mouseclicked

WORA
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006

Dison les coordonnée de la ligne, j'ai juste les 2 point pour
l'extremité, apres pour savoir si je clique sur la ligne
faut que je passe par la formule y=ax+b en verifiant avec le x et y de
la souris,

Je voudrai savoir si y une fonction qui permet d'evité ca .
Messages postés
54
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 avril 2006
1
p_clicked.x bien sur dans la formule, je vous avez dit ke yavais des erreurs :o)
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Non membre
Dernière intervention
13 avril 2020

un conseil vérifie que que ton point est compris
dans un cadre 5 pixels au dessus, au dessous, à droite et gauche de ton
segment de droite car tu as une chance sur cent de cliquer sur une
pixel du segment.
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006

oky ben merci pour vos reponses .

Sinon moi j'ai crée une fonction qui verifie que le point appartient a la droite et bien sur j'ai mis une marge de 2 pixel.

Si y en a qui sont interessé je peux mettre le code source ^^
Messages postés
54
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 avril 2006
1
mais de rien grelon :o) je t'aide beaucoup en ce moment je remarque lol ..

j'espère que quand je me serai décider à continuer mojn projet de fin d'année et que j'aurai besoin d'aide tous m'aideront aussi

allé ++
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006

si c'est dans mes cordes je t'aiderais ^^
Messages postés
50
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
4 mai 2006

Un technique bien plus simple :

Dessine un polygone sans le dessiner autour de ta ligne de maniere a ce qu'elle l'encadre en laissant une marge de 5 pixel par exemple

La methode contains des polygones te dit si un point se situe dans le polygone.

Tu te prend pas la tete avec les pentes a l'infini et autres...
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006

En fait j'ai cree un objet un Line2D, puis un objet rectangle que j'ai mis au milieu de la ligne, et je regarde simplement si le clik est dans le rectangle grace a la methode contains ^^.


Ce qui ressemble fortement a ce que aethan a dit ^^