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 :

intersection d'une droite avec un cube


Sujet :

Mathématiques

  1. #1
    Membre du Club
    Homme Profil pro
    developpeur C++
    Inscrit en
    Décembre 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur C++

    Informations forums :
    Inscription : Décembre 2009
    Messages : 61
    Points : 45
    Points
    45
    Par défaut intersection d'une droite avec un cube
    Bonjour je cherche à determiner l'intersection d'une droite avec celle d'un cube .
    quelqu'un aurait il un algo à me proposer ou un lien explicite à m'indiquer
    Merci

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Un cube est caractérisé, par exemple, par l'équation de 6 plans, et les coordonnées d'un point "interne" doit satisfaire 6 inégalités (larges) par rapport à ces équations. Si toutes les inégalités sont strictes, un point est "dans" le cube, et si l'une au moins est nulle, le point est "sur" le cube. Si au moins une des inégalités est fausse, le point est en dehors du cube.

    A partir des coordonnées du cube, tu peux déterminer ces équations et les inégalités qui vont avec (en effet, les sommets appartiennent au cube bien entendu, et le barycentre des 8 sommets est à l'intérieur du cube afin de calculer/vérifier rapidement le sens de chaque inégalité).

    Ton problème se résume à trouver l'intersection de ta droite avec ces plans, et de ne tenir compte QUE des points d'intersection satisfaisant la condition "appartiennent au cube" (au sens large, donc ceux à la surface du cube). Au final, tu auras zéro, un ou deux points d'intersection définissant donc l'ensemble vide, un seul point d'intersection (droite "tangente" au cube), ou un segment de droite dans l'espace. Dans le cas du segment, tous ses points appartiennent à "l'intérieur" du cube, et ses extrémités sont bien entendu à sa surface.


    Après, il y a peut-être déjà des formules "toutes faites" simplifiant le problème, mais la base mathématique est celle que je t'ai présenté. C'est même généralisable à N dimensions si besoin.

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par moulzo Voir le message
    Bonjour je cherche à determiner l'intersection d'une droite avec celle d'un cube .
    quelqu'un aurait il un algo à me proposer ou un lien explicite à m'indiquer
    Merci
    Un classique du raytracing. Comme l'a dit Mac LAK, cela se fait très bien avec les 6 équations de plan. Chaque équation s'obtient facilement en calculant la normale a la face. Les équations serviront également pour tester qu'un point d'intersection est bien sur une face (= entre les 4 plans).

    Google : ray box intersection

  4. #4
    Membre du Club
    Homme Profil pro
    developpeur C++
    Inscrit en
    Décembre 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur C++

    Informations forums :
    Inscription : Décembre 2009
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    Merci pour vos reponses.
    Maintenant il ne me reste plus qu'à essayer de detaillée l'algo.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Je ne sais ps est que qlq'1 de vous à réussi à implémenter l'algorithme sous Matlab.si c'est le cas merci de vous me le faire passer.
    cordialement

  6. #6
    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 peux jeter un oeil sur ce lien,
    la fonction clipLine3d correspond a ce que tu cherches je crois.


    A+

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    salut,
    Merci je l'ai déjà fait.

  8. #8
    Membre du Club Avatar de Pistolero_JB
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2008
    Messages : 42
    Points : 65
    Points
    65
    Par défaut
    Salut,

    en raytracing on utilise l'algo de Smits, très rapide, peu de calcul. Un exemple de code sous Matlab ici

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

Discussions similaires

  1. intersection d'une courbe avec droites
    Par max3232 dans le forum MATLAB
    Réponses: 17
    Dernier message: 14/05/2014, 01h20
  2. Réponses: 3
    Dernier message: 26/03/2013, 10h22
  3. Réponses: 2
    Dernier message: 15/07/2009, 22h51
  4. intersection d'une droite avec un triangle dans l'espace
    Par mylace dans le forum Mathématiques
    Réponses: 3
    Dernier message: 07/02/2009, 14h12
  5. Intersection d'une droite et d'un plan
    Par Snark dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 14/12/2005, 19h24

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