IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algo de "hitTest" sur un segment


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 330
    Par défaut Algo de "hitTest" sur un segment
    Salut,

    Je cherche l'algorithme le plus rapide en moyenne pour déterminer si un clic de souris défini par ses coordonnées est à proximité d'un segment défini par les coordonnées de ses deux extrémités. A priori la "proximité" se définit par une distance au segment inférieure à une constante, mais on peut l'adapter à l'algo si nécessaire du moment que ça ne change pas l'intuition qu'on en a.

    Merci

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Il suffit de calculer la distance entre le point et le segment.
    exemple

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 330
    Par défaut
    Citation Envoyé par Sylvain Togni
    Il suffit de calculer la distance entre le point et le segment.
    exemple
    Merci c'est très utile !

    Mais pensez vous que l'approche suivante soit valable pour optimiser le temps de réponse moyen :

    commencer par construire un rectangle élargi autour du segment, puis regarder l'intersection du point avec l'intérieur ce rectangle et seulement en cas d'intersection regarder la distance de plus près...

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Oui, c'est une optimisation classique pour ce genre de problème.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    et tu peux même décomposer en évitant éventuellement des comparaisons :

    rectangle x1,y1 x2,y2 x3,y3 x4,y4

    XMI = xmin-marge
    YMI = ymin - marge
    XMA = xmax+marge
    YMA = ymax+marge

    si x < XMI ou x > XMA
    rien
    si y < YMI ou y > YMA
    rien

    sinon intersection....

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 330
    Par défaut
    Citation Envoyé par souviron34
    et tu peux même décomposer en évitant éventuellement des comparaisons :

    rectangle x1,y1 x2,y2 x3,y3 x4,y4

    XMI = xmin-marge
    YMI = ymin - marge
    XMA = xmax+marge
    YMA = ymax+marge

    si x < XMI ou x > XMA
    rien
    si y < YMI ou y > YMA
    rien

    sinon intersection....

    OK merci beucoup je vais faire ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Quote] DVP quoté sur Bashfr
    Par Skyounet dans le forum La taverne du Club : Humour et divers
    Réponses: 16
    Dernier message: 26/09/2006, 18h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo