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

Résolu
cs_grelon
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006
- 1 avril 2006 à 20:43
cs_grelon
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006
- 29 avril 2006 à 12:04
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

Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
112
1 avril 2006 à 23:16
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
3
cs_nomad56
Messages postés
54
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 avril 2006
1
2 avril 2006 à 01:33
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 ...
3
Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
112
1 avril 2006 à 22:14
Salut,



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

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

1 avril 2006 à 22:37
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 .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_nomad56
Messages postés
54
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 avril 2006
1
2 avril 2006 à 01:34
p_clicked.x bien sur dans la formule, je vous avez dit ke yavais des erreurs :o)
0
kaloway
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
13 avril 2020

2 avril 2006 à 08:56
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.
0
cs_grelon
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006

2 avril 2006 à 17:54
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 ^^
0
cs_nomad56
Messages postés
54
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 avril 2006
1
2 avril 2006 à 20:24
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é ++
0
cs_grelon
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006

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

27 avril 2006 à 15:34
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...
0
cs_grelon
Messages postés
9
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
4 avril 2006

29 avril 2006 à 12:04
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 ^^
0