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 dans un polyedre


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut Test point dans un polyedre
    Salut, salut,

    est-ce que qulqu'un connaît une méthode permettant de déterminé si un point de l'espace est à l'intérieur d'un polyèdre quelconque.
    ( NB : J'entends par polyedre quelconque un objet 3D convexe ou concave formé de faces, convexes ou concaves, et qui ne sont pas forcement planes)

    J'ai entendu parler de la méthode des demi-droites, mais elle pose problème si la demi-droite rencontre un sommet ou si elle est tangente à une face.

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    la méthode de la demi droite fonctionne tres bien mais est extrement couteuse.
    Si ton objet est convexe, tu peux projeter tout tes points sur différents plans (trois au maximum) et vérifier que le projeté de ton point est dans le projeté des points de contours. Cela est tres facile ne regardant l'alternance des angles.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    La méthode qui consiste à compter le nombre d'intersection avec la surface des faces de la demi-droites verticale (axe Z) partant du point.
    Si le nombre est impair alors le point est dans le polyédre.

    Les problèmes de cette mérthode réside dans les effets de bord lorsque :
    • P1) les points des angles du polyedre sont sur la droite,
      P2) la droite coupe une arete,
      P3) la droite est contenue dans une face verticale,

    Si on ne désire pas une solution parfaite, on peut résoudre les différents problèmes P1, P2 et P3 en appliquant successivement les solutions S1 et S2:
    • S1) on décale légérement en X les points des angles qui posent problème
      S2) on décale légerement en Y les sommets des arètes occasionnant le cas 2
      P3 est automatiquement résolu par la combinaison de S1 et S2.


    PS : J'ai extrapolé la méthode de celle que j'utilise sur des polygones 2D.

  4. #4
    Membre chevronné
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Par défaut
    Si tu peux définir ton "polyèdre" comme l'intersection des volumes d'équations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    f1(x) <= 0 
    f2(x) <= 0 ...
    il suffira de vérifier que toutes les équations sont vérifiées.

  5. #5
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut
    Citation Envoyé par ToTo13
    la méthode de la demi droite fonctionne tres bien mais est extrement couteuse.
    Si ton objet est convexe
    Le problème est que les objets ne sont pas toujours convexes, et si c'est pour une question de performances, déterminé si l'objet est convexe ou non me parait compliqué. A moins qu'il existe une méthode rapide a laquelle je n'ai pas pensé.

    Citation Envoyé par Graffito
    S1) on décale légérement en X les points des angles qui posent problème
    S2) on décale légerement en Y les sommets des arètes occasionnant le cas 2
    P3 est automatiquement résolu par la combinaison de S1 et S2.
    Désolé je n'ai pas bien compris cette astuce de décalage leger (ie leger par rapport a quoi ?). Et n'est-t-il pas possible qu point se trouvant a l'intérieur, se retrouve a l'extérieur après le décalage et reciproquement ?

    Citation Envoyé par FrancisSourd
    Si tu peux définir ton "polyèdre" comme l'intersection des volumes d'équations, il suffira de vérifier que toutes les équations sont vérifiées.
    Oui, effectivement, mais j'ai du mal a comprendre comment décider si pour qu'une equation soit vérifiée il faut :
    ou bien
    puisque pour decider il faut savoir reconnaitre l'intérieur et l'exterieur du solide, non ?

  6. #6
    Membre chevronné
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Par défaut
    Pour plus de clarté, je me mets en dimension 3 donc le vecteur que j'appelé x est maintenant ecrit (x,y,z) où x,y et z sont des réels

    Si tu sais que ton volume est délimité par la surface d'équation f(x,y,z) = 0 mais si tu ne sais pas si les points à l'intérieur du volume doivent vérifier f(x,y,z) <= ou >= 0, tu peux prendre un point qui est assurément en dehors du volume. Le point (10000,10000,10000) par exemple.
    Si f(10000,10000,10000) <=0 alors les points (x,y,z) à l'intérieur de la surface doivent vérifier f(x,y,z) >= 0.

    Par exemple, les équations suivantes définissent une demi-sphère:
    x² + y² + z² <= 1 et z >= 0

    La première inéquation dit que le point doit être dans la boule centrée en 0 et de rayon 1. La deuxième équation dit qu'on doit être dans le demi-espace au dessus du plan "horizontal".

  7. #7
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,
    Désolé je n'ai pas bien compris cette astuce de décalage leger (ie leger par rapport a quoi ?). Et n'est-t-il pas possible qu point se trouvant a l'intérieur, se retrouve a l'extérieur après le décalage et reciproquement ?
    Par léger, j'entendais une valeur qui correspondait à la précision recherchée. En dehors des points situés au voisinage immédiat des faces du polyèdre (distance inférieure à la précision), on n'aura pas d'effet indésirable.

Discussions similaires

  1. Script shell 2 test grep dans un if
    Par hoaivong dans le forum Linux
    Réponses: 4
    Dernier message: 13/11/2008, 20h46
  2. rechercher de point dans structure
    Par cool17 dans le forum C
    Réponses: 6
    Dernier message: 13/04/2006, 00h19
  3. le pixel noir le plus proche d'un point dans une image
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 28/03/2006, 08h44
  4. [Cactus] [Test] request dans setUp
    Par Strab dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 09/08/2005, 14h36
  5. Réponses: 4
    Dernier message: 11/06/2004, 10h21

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