Tracé de ligne et génération d'événements

Utilisateur anonyme - 6 janv. 2009 à 17:35
 Utilisateur anonyme - 7 janv. 2009 à 09:00
Bonjour,

J'aimerai développé un petit programme permettant de tracer des segments de droites et sur chaque segments
récupérer des évemenet souris ? (les segments peuvent être obliques)

Pour les tracés pas de problème mais en ce qui concerne la gestion des événements sur mes segments ....
Quelqu'un aurait-il une solution ?

par avance merci Vincent.bo

3 réponses

nicotwo Messages postés 34 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 5 février 2010
6 janv. 2009 à 18:38
Bonjour,

Tu peux peut-être conserver en mémoire les coordonnées de tes lignes et de vérifier à chaque clique si il a été effectué sur une ligne.
Pour cela, il suffit de calculer l'équation de la droite qui passe sur la ligne et de vérifier si le clique correspond à l'équation de la ligne.

Voici le code qui te permettrait de calculer les équations de tes lignes (que tu pourrais conserver dans un ArrayList) :
//  L'équation est de la forme y = ax + b
int a,b;
// les coordonnées de tes lignes sont sous la forme de 2 points
// x1 et y1 sont les coordonnées du premier point et x2 et y1 celles du deuxieme

a = (int) ( Math.Abs(
y2-y1) / Math.Abs(x
2-x1) )
b = y1 - a* x1

Voici le code pour vérifier si le clique de la souris a été effectué sur une ligne :

private void MouseClick (object sender, MouseEventArgs e)
{
// a et b sont les int calculés plus haut
if (a * e.X + b = e.Y) 
   // le code à générer lorsqqe quelqu'un clique sur une ligne
}

Il te suffit ensuite de faire celà pour toutes les lignes

J'espère que ce te sera utile.
0
Utilisateur anonyme
7 janv. 2009 à 08:58
Merci pour ton info Nicotwo,
j'avais pensé à faire çà, mais j'ai oublié de dire dans mon message que chacun des segments avait une épaisseur ... snif !
En fait je devrait résumer ma question à ceci:

Après avoir tracé un polygone via un le graphique, comment gérer des événements MouseOver, MouseClick  ? Comme pour avec les logiciels de tracé de circuits imprimés par exemple .

Bonne question !
0
Utilisateur anonyme
7 janv. 2009 à 09:00
Petite question supplémentaire pour faire avancer le problème,
Peut-on à partir d'un contrôle Panel, après avoir déssiné un polygone, limiter la zone sensible de la souris à la surface du polygone ?
0
Rejoignez-nous