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

Mathématiques Discussion :

Collision entre une pyramide a base rectangulaire et un point


Sujet :

Mathématiques

  1. #1
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut Collision entre une pyramide a base rectangulaire et un point
    Bonjour a tous !
    J'ai une pyramide, je connais sa position, sa rotation, son orientation, son angle et sa taille.
    Je voudrais savoir si un point a tel position est dans cette pyramide ou non en evitant de faire une boucle énorme.
    Voila merci de votre aide =) .

  2. #2
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Une pyramide possède 5 faces.
    Chaque face est un plan ayant une équation:
    ux+vy+wz+t=0
    On remplace x,y,z par les coordonées du sommet opposé (celui qui n'appartient pas à la face) on trouve un réel k, on fait la même chose pour le point qu'on veut tester on trouve un réel h.
    On fait le produit kh, s'il est >0, cela veut dire que le sommet opposé et le point à tester sont du même côté de la face.
    Il faut répeter cela 5 fois, c'est pas une boucle énorme.

  3. #3
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut Re:
    Pour nous fixer les idées, considérons les points
    A(l/2, -L/2, 0)
    B(l/2, L/2, 0)
    C(-l/2, L/2, 0)
    D(-l/2, -L/2, 0)

    Soit P le pyramide de base ABCD et de hauteur H > 0. Le point M(x, y, z) se trouve à l'intérieur de cette pyramide si :
    0 <= z <= H
    |2x| <= l * (1 - z/H) //Propriété des triangles semblabes
    |2y| <= L * (1 - z/H)

    On peut ramener n'importe quel cas, aussi complexe puisse-t-il être, sous cette forme en faisant un nombre fini de changement derepère

  4. #4
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Melem : Votre truc, sur le papier paraît super-simple et super sympa.
    Dans la pratique il faudra construire un repère orthonormé lié à la pyramide. C'est pas trop méchant, mais il faudra surtout, pour transformer les coordonnées de M, calculer le centre du nouveau repère, calculer la matrice de passage de la base standard au nouveau repère, ce qui équivaut à calculer l'inverse d'une matrice 3*3, non ? Et pour finir vérifier vos conditions (qui me paraissent justes).
    Alors, par rapport aux 5 équations de plans, faut voir... C'est peut être mieux, mais ce n'est pas sûr.

  5. #5
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    Merci a tous pour vos réponses =).
    Le probleme c'est que j'ai un niveau de maths tres bas (niveau 3eme)...

    Zavonen:
    c'est quoi u,v,w et t ?

    Melem:
    A(l/2, -L/2, 0)
    c'est quoi I et L ?

    |2x| <= l * (1 - z/H) //Propriété des triangles semblabes
    |2y| <= L * (1 - z/H)
    La j'ai rien compris, je crois que je vais aller voir ce que c'est que les triangles semblables ...

  6. #6
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    c'est quoi l et L ?
    Respectivement la largeur et la Longueur du rectangle (la base de la pyramide). Tu choisis donc un rectangle de largeur l, de longueur L, et de centre O comme base de la pyramide, les 4 sommets d'un tel rectangle seront les points A, B, C, et D.

    Des triangles semblables sont des triangles homothétiques (homothétie, Thalès, etc. ca te dit quelque chose?).

    c'est quoi u,v,w et t
    Je te propose d'aller ici

  7. #7
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Pour Melem: Oui, c'est bien de diriger IXT95I vers cette longue discussion sur les équations de plan. J'allais le faire.
    Pour revenir sur votre test d'appartenance, je crois qu' il ne marche que s'il s'agit d'une pyramide 'droite' (dont l'apex est à la verticale du centre de gravité du rectangle base).

  8. #8
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Il y a peut-être autre chose:
    Soit ABCD la base rectangulaire de la pyramide et S le sommet.
    La pyramide est réunion des deux tétraèdres ABCS et ADCS.
    Un point M est dans la pyramide s'il est dans un des deux tétraèdres.
    Pour savoir si M est dans le premier on décompose SM suivant SA SB et SC
    les coordonnées doivent être toutes positives et inférieures ou égales à 1.
    Idem pour l'appartenance de M a ADCS.(enveloppes convexes)
    Vu comme ça cela fait deux systèmes 3x3 à résoudre.
    Cela marche pour toutes les pyramides (même non droites).

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

Discussions similaires

  1. Résolution de collision entre une sphère et un plan
    Par faucheuse dans le forum Physique
    Réponses: 22
    Dernier message: 05/06/2011, 12h49
  2. Résolution de collision entre une sphère et un AABB
    Par faucheuse dans le forum Physique
    Réponses: 5
    Dernier message: 16/06/2010, 20h22
  3. Synchronisation entre une base locale et distante
    Par gege87270 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 09/11/2007, 14h04
  4. Connexion entre une base firebird 2.0 et JAVA
    Par magnito dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 30/10/2007, 21h28
  5. Une application Dialog based pas rectangulaire....
    Par feed_our_vision dans le forum MFC
    Réponses: 2
    Dernier message: 14/06/2004, 10h10

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