Intersectiond'un plan et d'un segment de droite en 3D

cs_epson1 Messages postés 89 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 29 mars 2013 - 26 mars 2013 à 16:30
 Zermelo - 29 mars 2013 à 23:10
Bonjours à tous,
j'ai encore un problème de math dont je ne trouve pas la solution.
Je voudrais trouver les coordonées du point d'intersection d'un segment de droite (P1 x,y,z-P2 x,y,z) et d'un plan dans l'espace (A x,y,z-B x,y,z-C x,y,z-D x,y,z) .Je connais tous ces points .
J'ai fait un petit croquis pour mieux comprendre ce que je cherche.
J'ai trouvé pour un triangle et un segment , pour 2 segments ,mais pas plan/segment .
En fait j'ai trouvé un algo mais qui me dit si le segment intersecte avec les arettes d'un rectangle .Sa n'est pas ce que je veux .
En fait ce que je voudrais c'est un exemple concret en VB6 (pas forcement un code tt pret mais une démarche a suivre) parce que je ne comprends pas les notations mathématiques des formules que j'ai trouvé sur le net .
En prog je me debrouille mais je n'arrive pas a transcrire une formule mathématique en algo .
Voila , j'espere que je me suis bien exprimé , sinon n'hésitez pas à demander des précisions .
Merci d'avance .
Je n'arrive pas a joindre d'image donc je dessine comme je peux en espérant que sa soit clair .
a ______b
|°°°°°°°|
|°°°/°°°|
|_______|
d°°°°°°°c
Les petits ronds c'est pour conserver la mise en page , le petit trait a l'interieur c'est mon segment qui coupe le plan .

37 réponses

Utilisateur anonyme
28 mars 2013 à 16:40
Bonjour epson1,

Avant de développer ta fonction, tu devrais poser ta question sur un forum de mathématiques en leur expliquant ta situation. Lorsque tu maîtrisera le problème, alors tu pourras développer ta fameuse fonction.

Dans l'exemple du lien ci-dessus, connaissant les valeurs du vecteur directeur de ta droite (D) (alpha, beta et gamma), il suffit de faire varier t pour connaitre x, y et z. Lorsque l'équation du plan (P) posé par l'équation x + y + 2z - 5 = 0 se vérifiera, alors x, y et z te donneront les coordonnées du point d'intersection.
0
Utilisateur anonyme
28 mars 2013 à 16:59

        +

 beta(1)
     |  
     |  /gamma(1) 
     | /
     |/________alpha(1)
     0

Par exemple, un vecteur directeur de (0,1,1) (alpha,beta,gamma) dans mon dessin viserait le + en partant du 0 (pas évident à faire avec cet éditeur)


Et un bonsoir à ucfoutu en passant.
0
cs_epson1 Messages postés 89 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 29 mars 2013
28 mars 2013 à 17:04
Oui je comprends bien ton point de vue mais mon problème n'est pas si compliqué que ça .
Mon but est juste de savoir si une droite coupe un plan et si oui , a quel endroit ?
J'ai déja fait tout le reste (lecture d'un fichier de points , affichage du modèle en volume , rotation dans les 3 axes , etc)
Je suis d en train d'essayer de comprendre ce que j'ai trouvé sur le net (y compris les liens que l'on m'a proposé)mais c'est vraiment pas facile . On a la bosse des maths , ou on l'a a po :)
En tous cas merci de ton intéret , je vais essayer de me débrouiller avec tout ça .
0
cs_epson1 Messages postés 89 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 29 mars 2013
28 mars 2013 à 17:06
Merci Banana32 c'est un peu + clair comme ça je vais essayer .
Encore merci .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
28 mars 2013 à 17:15
Comme disait ucfoutu cette équation x + y + 2z - 5 = 0 peut ne jamais se vérifier si la droite longe le plan et en dehors. Elle peut donner une infinité de points si elle se confond avec le plan. Elle ne donne qu'une solution si elle coupe le plan. Voilà.
0
cs_epson1 Messages postés 89 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 29 mars 2013
28 mars 2013 à 17:21
Bin voila une réponse a la question que je me posait justement :)
Merci Banana32
0
jibob Messages postés 59 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 4 juillet 2013
28 mars 2013 à 19:02
Bonjour à tous,

C'est un problème de pré-requis.

Il faut commencer par assimiler la géométrie 2D au niveau du BEPCà savoir au minimum la géométrie euclidienne, les vecteurs, les produits scalaire, vectoriel, les distances, la trigonométrie, les théorèmes de thalès, Pytagore, axiome d'Euclide et l'algèbre et ses notations.
Les annales corrigées du BEPC sont, je pense, une bonne base de départ

Pour la géométrie descriptive et le calcul analytique, il faut passer aux annales corrigées du BAC S mais inutile si les bases précédentes ne sont pas maitrisées.
Un charpentier utilise la géométrie descriptive par traçage direct au sol et dimensionne ses pièces en vraie grandeur par des projections et des rabattements faits sous forme d'une épure et qui sont (presque) aussi précis que la calcul analytique.
Idem pour un chaudronnier qui doit assembler des pièces, par exemple une sphère sur un cylindre creux, il réalise une épure tracée sur une pièce pour évider celle-ci avant de les souder.

http://www.paris-lavillette.archi.fr/p11/rabattement.htm
http://choumac44.free.fr/NEWDESMODIF/raba-mid.htm
Ces notions de projection et de rabattement sont essentielles pour attaquer la géométrie descriptive.

http://fr.wikipedia.org/wiki/Tra%C3%A7age_(chaudronnerie)
http://fr.wikipedia.org/wiki/G%C3%A9om%C3%A9trie_descriptive
http://fr.wikipedia.org/wiki/Propri%C3%A9t%C3%A9s_m%C3%A9triques_des_droites_et_plans

Personnellement, vu le lien déjà indiqué qui indique la méthode, le problème a peu de chance de trouver une issue autre que par le calcul matriciel, car si le problème semble simple visuellement, la résolution du système d'équations ne pourra se faire fiablement que par le calcul par matrices.
Les matrices sont également au programme de math. du bac S.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 mars 2013 à 20:06
Bonjour, jibob,
le problème a peu de chance de trouver une issue autre que par le calcul matriciel

Pourquoi donc ?
Il a précisé connaitre les 3 coordonnées de trois points de son plan et deux points de sa droite.
Il lui faut donc commencer par la détermination de deux équiations : celle du plan et celle de la droite
Il doit donc commencer par le (curieusement) moins compliqué : apprendre à déterminer l'équation d'un plan à partir de trois points dont on connait les 3 coordonnées de chacun. ====>>
Tapez le texte de l'url ici.
Apprendre ensuite à déterminer l'équation d'une droite dans l'espace est la seconde étape. En rappelant qu'une droite dans l'espace n'est jamais rien d'autre que l'intersection de deux plans non parallèles dans l'espace.
Ces deux équations étant déterminées tout devient très simple et la méthode de détermination des 3 coordonnées du point (éventuel) d'intersection est parfaitement exposée dans le tout premier lien qui lui a été donné.
mais la baguette magique qu'il attend n'existe pas. Il lui faudra nécessairement au moins trois fonctions retournant des structures (variables de type personnalisé) définies.
Voilà.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 mars 2013 à 06:23
J'ai ce matin une idée.=== >>> celle de te conduire à chercher à comprendre le plus simple (tu auras quand même un gros effort à faire) avant de tenter d'aller vers le plus complexe.
Le plus simple ? déterminer l' équation d'une droite dans un plan , à partir de deux points du plan dont tu connais les coordonnées
L'équation linéaire de cette droite étant du type y = ax + b, c'est le calcul de a et de b qu'il nous faut faire pour l'établir.
Va maintenant faire un tour sur ce lien que j'ai déposé il y a quelques temps et où je me suis efforcé de rendre les choses le plus facile à comprendre possible :
Tapez le texte de l'url ici.
une partie de ce code traite précisément de la détermination des deux paramètres (a et b) déterminant l'équation de la droite. Il s'agit de la fonction que voici :
 Private Function param_droite(x1 As Integer, x2 As Integer, y1 As Integer, y2 As Integer) As mes_params
'voilà la seule fonction intéressante : celle qui utilise l'algèbre
' et traite les cas particuliers (horizontale et verticales pures)
  With param_droite
'(((((((((((((((((((.sensx = 1
'(((((((((((((((((((.sensy = 1
    If x1 = x2 Then
      .coef = 0
      .constante = 0
'(((((((((((((((((((((((((((((((((((.incli = "V"
'(((((((((((((((((((If y2 < y1 Then .sensy = -1
    Else
'((((((((((((((((((((((If y1 y2 Then .incli "H"
      .coef = (y1 - y2) / (x1 - x2)
      .constante = y1 - (.coef * x1)
'((((((((((((((((((If x2 < x1 Then .sensx = -1 ' on est dans le cas d'abscisses décroissantes
'((((((((((((((((((((If y2 < y1 Then .sensy =  -1 ' on est dans le cas d'ordonnées décroissantes
    End If
  End With
End Function 

ignore toutes les lignes devant lesquelles j'ai ici mis des '(((((((((((((((((((. seules les autres concernent les paramètres de l'équation recherchée.
Observe maintenant ce que retourne cette fonction :
Private Function param_droite(x1 As Integer, x2 As Integer, y1 As Integer, y2 As Integer) As mes_params
elle retourne une variable de type personnalisé, défini selon la structure :
Private Type mes_params
  coef As Single
  constante As Single
  '(((((((((((((incli As String
  '(((((((((((((sensx As Integer
  '(((((((((((((sensy As Integer
End Type 

ici également : les lignes devant lesquelles j'ai mis des '((((((((((((( ne concernent pas l'équation à proprement parler. Seuls ses membres coef et constante nous sont utiles. Ce sont précisément les paramètres a et b de l'équation linéaire y = ax + b (celle recherchée).
Voilà donc un exemple de mécanisme (une fonction et une structure) pour la seule recherche d'une équation linéaire simple (en 2 D)
Ce sera bien plus complexe pour toi dans le cas d'établissement de tes 2 équations (plan et droite) dans l'espace. Le principe sera toutefois le même : fonctions et structures
Tu comprends mieux, maintenant ?
Bon courage.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 mars 2013 à 08:24
Je remarque cette parie de ton tout premier message :
les coordonées du point d'intersection d'un segment de droite (P1 x,y,z-P2 x,y,z) et d'un plan dans l'espace (A x,y,z-B x,y,z-C x,y,z-D x,y,z) .Je connais tous ces points .

Pourquoi 4 points ? Seuls 3 points sont suffisants pour définir l'équation d'un plan.
Je commence à me demander si ta problématique (en plus) ne concerne pas un plan, mais une surface bordée de 4 cotés dans un plan dans l'espace.
Je vois également que tu parles de "segment" , ce qui laisse entendre que seule une partie de la "droite" est concernée.
Quoi qu'il en soit ===>> tes équations (plan et droite) ===>> résolution du système d'équations (comme dit plus haut) ===>> si (et seulement si) existe une solution ===>> vérifier les deux conditions (à l'intérieur de la surface et sur entre les bornes du segment).
Comme dit et redit : cela ne peut s'apprendre que pas à pas et en étudiant les mathématiques.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 mars 2013 à 10:23
Enfin et par ailleurs, je vois que tu parles d'une machine et en viens à me demander si la finalité est finalement pas autre que celle définie, telle qu'exprimée.
Il y a par exemple une certaine différence entre les 3 coordonnées d'un point éventuel d'intersection dans l'espace et les deux coordonnées de ce même point d'intersection sur le plan, par rapport à deux axes de ce plan.
Et si tel est finalement le vrai but : approche encore différente, mais toujours via les maths, bien sûr.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_epson1 Messages postés 89 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 29 mars 2013
29 mars 2013 à 18:58
Tu as vus juste , ucfoutu , il s'agit bien d'une surface bordée de 4 cotés ,je me suis mal exprimé .
Je commence seulement à comprendre les "nuances" des maths (droite ou segment ,plan ou rectangle , etc )
j'ai compris , par exemple , la différence entre une droite et la direction d'une droite .
De plus il me semblait évident qu'un plan soit représenté par quatre angles .
Je ne savais pas ce qu'était un vecteur , maintenant j'arrive même à les additionner :)
J'avance , j'avance , lentement mais surement .
Mais c'est vraiment pas "facile" .
Merci
0
Bonjour à tous.

L'énoncé décrit le plan par quatre points. Encore faut-il qu'ils soient coplanaires.

Cordialement.


Étant illettré, je signe d'une croix : ×
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 mars 2013 à 19:34
Bonjour, Zermelo,
Comme je le lui ai dit plus haut, trois points déterminent un plan dans l'espace.
Le 4ème ne devrait être là que comme 4ème point du polygone concerné
Ca va plus loin que cela encore, maintenant que l'on devine la vraie finalité.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Bonsoir ucfoutu.

Certes, mais peut-on choisir arbitrairement trois des quatre points pour définir le plan du rectangle sans être sûr que le quatrième point sera alors dans ce plan. Il me semble que la première partie de la réponse doit consister à donner la condition pour qu'il en soit ainsi.
Salutations à banana32.

Cordialement.


Étant illettré, je signe d'une croix : ×
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 mars 2013 à 21:13
Ce que je crois/devine, s'agissant d'une machine, c'est qu'il a déjà son polygone, sa surface de travail, dans un plan.
Je crois également que l'outil (une partie de sa machine) est véritablement un segment (pas une droite) qui viendra "intervenir" à l'intérieur du périmètre de son polygone (pour y découper, pour y imprimer, pour autre chose ? ... cela, je ne le devine pas).
Que donc, il y aura toujours un point d'intersection.
Qu'un tel outil ne remplirait probablement sa fonction que si les coordonnées de chaque point "travaillé" étaient relatives par rapport au plan (par rapport à un système de DEUX axes SUR le plan et à l'INTERIEUR du polygone.
Voilà ce que je devine. Mais je ne suis pas un devin à 100% "fiable". .
Je suis par ailleurs trop âgé maintenant pour aller au-delà dans mes réflexions. Je préfère la pêche

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Donc, on ne relève pas le défi ? Dommage, le problème doit se résoudre aisément par calcul vectoriel.

Je te souhaite une bonne nuit.


Étant illettré, je signe d'une croix : ×
0
Rejoignez-nous