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.
A voir également:

11 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
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 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
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
Rejoignez-nous