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 :

Test: point au dessus d'un triangle


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Test: point au dessus d'un triangle
    salut,
    est-ce que quelqu'un connait un manière efficace de tester si un point se trouve au dessus d'un triangle?

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par NailMaker
    salut,
    est-ce que quelqu'un connait un manière efficace de tester si un point se trouve au dessus d'un triangle?

    merci


    dans l'espace ?
    dans le plan ?

    quelles données pour ton point ? pour ton triangle ?


    etc.
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Bien floue cette question...

    On ne sait rien du contexte, on ignore les hypothèses...
    Ton triangle, il est dans une image je suppose ?
    Qu'entends-tu par "au-dessus" ?
    Si tu connais les sommets du triangle, et que l'on parle en axe Oxy, alors tester s'il est au-dessus, c'est tester la valeur de y de chacun des sommets avec le point en question.
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Salut,

    Il faut être plus prècis. Que signifie au dessus ?

  5. #5
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 886
    Points : 1 526
    Points
    1 526
    Par défaut
    Et si tu dois tester l'inclusion du point dans le triangle, clique ici

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Salut,

    contexte

    j'ai une surface courbe en 3D composée de triangles. J'ai un point dans l'espace. Je veux savoir si le point est au dessus d'un triangle.

    info suplémentaire

    Ma surface vient d'un solide fait avec un logiciel de CAD et exportée en fichier STL. j'ai donc les coordonnées des sommets et la normal orienté vers l'extérieur du solide pour chaque triangle.

    au dessus: le terme employé normalement, qqc comme : si on déplace le triangle dans le sens de la normal on va croiser le point

    pour plus d'info sur mon projet
    http://www.developpez.net/forums/sho...d.php?t=155794

    j'ai trouvé des algo très efficace pour savoir si un point est à l'intérieur d'un triangle en 2D, je veux savoir s'il en existe aussi en 3D
    merci

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    oups ... CAO pas CAD

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Re,

    Il te suffit de faire le produit scalaire entre le vecteur formé par un sommet et le point que tu test et le vecteur normal. Selon le signe tu sais si il est au dessus.

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    merci c'est déjà un bon truc, mais je crois que je veux plus que ça.

    c'est de ma faute, ma question est encore floue.

    je cherche a trouver la distance minimum entre ma surface composée de triangles et mon point dans l'espace 3D. Après avoir balayer chacun des sommets des triangles, j'ai trouvé celui qui était le plus près de mon point.

    voilà le problème: ce sommet est partagé par plusieurs triangles et je veux maintenant savoir sur quel triangle je dois projeter mon point pour obtenir la distance minimum.

    C'est pour cette raison que je voulais savoir si le point était au dessus, pour trouver la distance minimum.

    peut -être que je ne procède pas de la bonne méthode?

  10. #10
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    tu as plusieurs cas en fait :
    - projection sur un triangle
    - projection sur une arete
    - projection sur un sommet

    Une psb est de projeter le point sur le plan associe a un triangle, puis de tester si le point est dans le triangle (en reprenant les algos du 2D).
    Si ce n'est pas le cas, on projete sur les cotes du triangles.
    Si on ne se projette pas sur les cotes, alors le point le plus proche est un des sommets du triangle.

    A partir de ca on peut calculer la distance minimum du triangle 3D au point.
    En iterant sur les triangles, tu trouve le (ou les) plus proches triangles.

    en esperant que ca aide ?

    A+

  11. #11
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 886
    Points : 1 526
    Points
    1 526
    Par défaut
    Citation Envoyé par NailMaker
    voilà le problème: ce sommet est partagé par plusieurs triangles et je veux maintenant savoir sur quel triangle je dois projeter mon point pour obtenir la distance minimum.

    C'est pour cette raison que je voulais savoir si le point était au dessus, pour trouver la distance minimum.
    Ce n'est pas parce qu'un point est "au dessus" d'un triangle qu'il en est proche. Il peut très bien être au dessus d'un (ou plusieurs, d'ailleurs) triangle très éloigné, il suffit que le triangle soit bien orienté.

  12. #12
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Salut,

    après tout vos commentaires voici ce que je vais faire:

    une première passe pour trouver le sommet le plus proche de mon point. Je vais projeter le point en direction de la normal sur chacun des triangles qui possède ce sommet. Trouvez le point d'intersection avec le plan du triangle(voir: http://www.developpez.net/forums/sho...ht=plan+droite), puis tester si le point est a l'intérieur du triangle.

    Pour le test en 2D, j'utilise une approche vectoriel. Je fais le produit vectoriel entre la directrice d'un des côtés et le vecteur qui va du sommet au point d'intersection. de cette manière je sais de quel côté de la droite se trouve le point. Je recommence pour les deux autres côté.

    si j'ai plus d'un triangle je vais prendre la distance minimum
    si je n'ai aucun triangle je vais projeter sur une arête.

    merci à tous!

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Citation Envoyé par NailMaker
    une première passe pour trouver le sommet le plus proche de mon point. Je vais projeter le point en direction de la normal sur chacun des triangles qui possède ce sommet. Trouvez le point d'intersection avec le plan du triangle(voir: http://www.developpez.net/forums/sho...ht=plan+droite), puis tester si le point est a l'intérieur du triangle.
    Arrêtez moi si je dit une bêtise, mais le triangle le plus proche d'un point n'est pas forcément lié au sommet le plus proche du point. Comme il est difficile de faire des schèmas en 3D je joins un exemple en 2D avec des segments :
    Images attachées Images attachées  

  14. #14
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Salut,

    je suis d'accord : si l'on prend tous les cas possibles, l'hypothèse que le sommet le plus proche mène au triangle le plus proche n'est pas valide.

    Cependant, je travail avec une surface courbe (qui ressemble à
    une aile d'avion lègèrement tordue), comme mes points sont distribués tout le tour de cette surface, je crois que je peux rejeter le scenario où le point est pris en sandwich.

    a moins que je dise moi aussi une bêtise

    merci pour la remarque

  15. #15
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Bonjour à tous,

    j'ai trouvé un article qui répond d'une manière très précise à ma question. Autant pour du 2D que du 3D. Il y a un code source en plus!

    alors je tenais à vous le faire partager.

    http://www.ddj.com/184404201

    bonne lecture

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

Discussions similaires

  1. Point à l'intérieur d'un triangle ?
    Par remi77 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 15/05/2017, 14h49
  2. Gérer une image et des points au dessus
    Par Caxton dans le forum Débuter
    Réponses: 5
    Dernier message: 30/07/2009, 10h33
  3. [W-07] faire un point au dessus d'une lettre
    Par logan138 dans le forum Word
    Réponses: 4
    Dernier message: 14/01/2009, 08h51
  4. Test point dans un polyedre
    Par Mucho dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 31/03/2006, 18h40
  5. Réponses: 3
    Dernier message: 31/10/2005, 16h47

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