Angle de 3 points dans l'espace

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Tanatoflo
Messages: 8
Enregistré le: 22 Aoû 2013, 08:39

Angle de 3 points dans l'espace

par Tanatoflo » 22 Aoû 2013, 08:44

Bonjour à tous,

Je suis actuellement en train de développer un petit programme de maillage et j'aurais besoin d'une formule me permettant de calculer la mesure d'un angle à partir des coordonnées des 3 points qui le définissent.

Pour poser le problème, je dispose des points A(xA, yA, zA), B(xB, yB, zB) et C(xC, yC, zC) et je souhaite connaitre la valeur de l'angle ABC qui est comprise entre 0° et 360°.

En cherchant sur des forums, je suis parvenu à trouver une formule utilisant la fonction acos ainsi que le produit scalaire des vecteurs mais cette formule ne me convient pas dans la mesure où elle ne peut me donner que des angles dont la valeur est inférieure ou égale à 180° (à cause du cosinus).

Donc, connaîtriez-vous une formule permettant de gérer tous les cas possibles (je ne sais pas si cela est possible, mon niveau en géométrie spatiale est assez faible) ?

Merci d'avance !



emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 09:56

Bonjour, et bienvenu sur le forum.

Ne cherche plus : les angles dans l'espace sont des angles géométriques définis entre 0 et 180°. Il n'y a plus de possibilité, comme dans le plan, de définir des angles orientés.

Essaie de t'en convaincre en cherchant la différence entre un angle de 90° et "un angle de 270°". Tu verras qu'il n'y en a pas...

Tanatoflo
Messages: 8
Enregistré le: 22 Aoû 2013, 08:39

par Tanatoflo » 22 Aoû 2013, 10:19

Merci beaucoup pour ta réponse.

Mon but avec ce programme était de reconstruire une portion de cercle à partir de ces 3 points tels que B est le centre du cercle, tandis que A et C délimitent la portion du cercle à prendre en compte (je vais essayer d'intégrer une image, ce sera plus explicite).

Y aurait-il un moyen, avec les informations dont je dispose (donc uniquement les coordonnées de ces 3 points), de me ramener à un plan dans lequel je puisse obtenir la bonne mesure de l'angle ?

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 10:35

Tanatoflo a écrit:Y aurait-il un moyen, avec les informations dont je dispose (donc uniquement les coordonnées de ces 3 points), de me ramener à un plan dans lequel je puisse obtenir la bonne mesure de l'angle ?


Eh bien non, justement. On est bien d'accord que trois points déterminent un plan, et on pourrait imaginer de travailler dans ce plan (où les angles peuvent être orientés). Malheureusement, selon le côté par le lequel tu regardes ton plan, l'angle qui vaut 90° d'un côté vaudra 270° de l'autre...

Revenons à ce que tu souhaites faire : un arc de cercle. Mais il y a deux arcs de cercles de centre B délimités par A et C : un petit (correspondant à l'angle saillant ABC) et un grand (correspondant à l'angle rentrant ABC).
Veux-tu toujours dessiner le petit? toujours le grand? Ou ça dépend ? Et alors, de quoi ?

Tanatoflo
Messages: 8
Enregistré le: 22 Aoû 2013, 08:39

par Tanatoflo » 22 Aoû 2013, 10:52

Je pense que parler en termes de vecteurs sera plus simple pour le coup, désolé de ne pas y avoir pensé avant. L'angle qui m'intéresse est toujours dans le sens (BA, BC) et couvre la portion du cercle qui est définit (donc l'angle rentrant).

Petit HS : La balise [IMG] fonctionne-t-elle ? Je n'arrive pas à l'utiliser.

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 11:00

Tanatoflo a écrit:Je pense que parler en termes de vecteurs sera plus simple pour le coup, désolé de ne pas y avoir pensé avant. L'angle qui m'intéresse est toujours dans le sens (BA, BC) et couvre la portion du cercle qui est définit (donc l'angle rentrant).


Je t'invite à bien réfléchir à la question, et à relire mes messages précédents : il n'y a pas d'angle orienté de vecteurs dans l'espace, et par conséquent, il n'y a pas de sens (BA, BC)...

Tu penses peut-être que je pinaille, mais tant que ton cahier des charges n'est pas correctement défini, tu n'as aucune chance de pouvoir le remplir. Une fois que ton problème sera correctement posé, on pourra le résoudre en quelques minutes.

Tanatoflo a écrit:Petit HS : La balise [IMG] fonctionne-t-elle ? Je n'arrive pas à l'utiliser.

Aucune idée à ce sujet...

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 11:02

NB
angle saillant : inférieur à 180° (le petit arc)
angle rentrant : supérieur à 180° (le grand arc)

Tanatoflo
Messages: 8
Enregistré le: 22 Aoû 2013, 08:39

par Tanatoflo » 22 Aoû 2013, 11:12

Excuse-moi, vu que j'ai posté la question sur deux forums différents, je me suis égaré dans les réponses.

Donc, concernant la nature de l'angle, il s'agit toujours de l'angle rentrant.

Au passage, ne pouvant pas insérer l'image ici, je me permets d'inclure le lien de l'autre forum sur lequel j'ai réussi à poster l'image : Schéma disque tronqué.

Je précise que ceci n'est qu'un exemple, la position des points peu bien entendu varier dans l'espace, le disque être plus petit, etc. En revanche, et c'est probablement pour ça que je m'entêtait à parler de sens, A est toujours définit en premier par l'utilisateur et C en dernier.

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 11:22

Tu as posté un schéma dans le plan, et non dans l'espace, donc cela ne résout pas le problème.

Quand tu dis :
Tanatoflo a écrit:C'est l'angle (BA, BC) qui m'intéresse puisqu'il définit la portion du disque existante.


je t'assure qu'il ne définit pas la portion du disque existante, mais qu'il en définit deux, et qu'il te faudra choisir à un moment.

Note bien que ton interlocuteur sur l'autre forum se trompe en parlant d'angle orienté de vecteurs dans l'espace.

Soyons clairs : prenons A la main gauche de la statue de la liberté, B son cou, et C sa main droite.
Tu trouves combien pour l'angle (BA,BC) ? 120° ou -120° ?

Tanatoflo
Messages: 8
Enregistré le: 22 Aoû 2013, 08:39

par Tanatoflo » 22 Aoû 2013, 11:49

je t'assure qu'il ne définit pas la portion du disque existante, mais qu'il en définit deux, et qu'il te faudra choisir à un moment.


Oui je comprends ce que tu veux dire, il y a la portion qui m'intéresse, et il y a celle qui "n'existe pas", c'est d'ailleurs parce que ma formule actuelle me retourne rarement la bonne que j'ai posé mon problème sur des forums.

Soyons clairs : prenons A la main gauche de la statue de la liberté, B son cou, et C sa main droite. Tu trouves combien pour l'angle (BA,BC) ? 120° ou -120° ?


-120° correspond à ce que je recherche.

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 11:55

Et si tu te mets de l'autre côté de la statue (derrière), tu dirais encore -120° ?

Tanatoflo
Messages: 8
Enregistré le: 22 Aoû 2013, 08:39

par Tanatoflo » 22 Aoû 2013, 12:08

Et si tu te mets de l'autre côté de la statue (derrière), tu dirais encore -120° ?


Je vais dire oui mais je pense avoir compris le problème. Avec mon programme, il me manque l'information me permettant de savoir quelle partie du disque est définit par les 3 points, du coup je peux jamais savoir laquelle prendre.

J'ai voulu simplifier le problème avant de venir le poser sur Internet et je l'ai trop simplifié. J'ai posté une deuxième image sur l'autre forum qui représente un exemple de disque que je cherche à obtenir.

Je connais les coordonnées des points P1, P2, P3, P4 et je suis actuellement capable de trouver le centre du cercle sur lequel se trouvent P1, P2 et P3. De plus, avec l'ajout de P2, on voit quelle est la partie du disque qui m'intéresse.

Du coup, il faut que je trouve l'angle (BA, BC) de telle manière à ce que P2 appartiennent à la corde qu'il définit (sinon, c'est que j'ai trouvé l'angle de la portion qui ne m'intéresse pas). Aurais-tu une idée ?

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 12:28

OK, là c'est plus clair, et correctement défini.

Avant que je n'oublie, il te faudra faire un test dans ton programme, car si les points P1, P2, et P3 sont alignés, il n'y a pas de cercle circonscrit au triangle, et tu risques d'avoir des ennuis.

La solution est de faire encore un test pour déterminer de quel arc il s'agit. Il n'y a aucun moyen de le savoir à l'avance dans tous les cas...

La meilleure méthode est de calculer des produits vectoriels. Ce sont eux qui déterminent "de quel côté tu regardes ta statue de la liberté"!

Je réfléchis un moment au meilleur moyen de résoudre ton problème, et je te poste la réponse.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 22 Aoû 2013, 13:03

Bonjour,
Pardon de m'incruster dans votre discussion.
D'abord, à emdro, l'emploi, par moi, de l'expression "produit vectoriel" pour connaitre la position relative de 3 points a provoqué chez un membre de très vives protestations. Ceci étant dit je constate avec plaisir que nous sommes au moins 2 à parler des mêmes choses avec les mêmes termes.

Par ailleurs, Tonatofl travaille dans l'espace. Chose certaine, il travaille avec 3 coordonnées, mais quand on se met à parler d'arc de cercle dans l'espace, je commence à avoir des doutes. Ne s'agirait-il pas plutôt de 2.5D, c'est à dire d'objets dans le plan horizontal avec l'information de l'altitude.
En d'autres termes, les objets étudiés serait-ils "sans notion de verticale", comme peut âtre une hélice de bateau, ou au contraire "avec notion de verticale", comme peut être un bâtiment ou une route.
Il me parait indispensable de faire cette distinction.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5478
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 22 Aoû 2013, 13:13

Dlzlogic a écrit:Bonjour,
Pardon de m'incruster dans votre discussion.
D'abord, à emdro, l'emploi, par moi, de l'expression "produit vectoriel" pour connaitre la position relative de 3 points a provoqué chez un membre de très vives protestations. Ceci étant dit je constate avec plaisir que nous sommes au moins 2 à parler des mêmes choses avec les mêmes termes.

Très vives protestations car Dlzlogic persiste, malgré moult explications et références, à appeler "produit vectoriel" un simple déterminant 2x2. Je ne pense pas que Embro confonde les deux notions.
Bref...

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 13:23

Je reprécise le problème afin qu'on soit d'accord:
Tu as trois points dans l'espace, non alignés, et tu as réussi à trouver le centre du cercle circonscrit à .
Il y a deux arcs de cercles (le petit, le grand) et on souhaite savoir sur lequel se trouve afin de tracer le bon arc.


Une des façons de faire est de construire le losange sur et (fais un dessin)!

Sa diagonale est la bissectrice intérieure de l'angle saillant .

Je pars de cette bissectrice pour définir deux angles (géométrique, entre 0 et 180°) :
  • entre et
  • entre et


Si l'angle est inférieur à l'angle , alors est sur le petit arc. Sinon, il est sur le grand.

Il suffit de comparer ces angles dont on peut calculer les cosinus par :
et .

Comme , et puisque la fonction cos est décroissante sur [0,180°], on aura :

est sur le petit arc .

Comme tu connais les coordonnées de tous tes points, tu as celles des vecteurs, et tu peux facilement calculer les produits scalaires.

Pour la suite, j'ai l'impression que tu as trouvé comment tracer un arc .
Sais-tu contrôler à l'avance si c'est le petit ou le grand ?

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 13:27

La notion de produit vectoriel (de deux vecteurs, en dimension trois, tout le monde devrait être d'accord...) n'a pas encore été utilisée. Elle le sera pour tracer le bon arc de cercle par la suite.

Tanatoflo
Messages: 8
Enregistré le: 22 Aoû 2013, 08:39

par Tanatoflo » 22 Aoû 2013, 15:24

Et bien merci beaucoup emdro, tu as résolu mon problème. Je cherchais une condition me permettant de savoir si l'arc que je voulais était le petit ou le grand et ton utilisation de P2 remplit ce rôle à merveille.

Voici du coup ce que je fais dans mon programme pour calculer la mesure de l'angle :
+ je mets en place les vecteurs, , et la bissectrice
+ je calcule les angles 1 et 2
+ je les compare :
[INDENT]- si 1 >= 2 alors l'angle est 180°, ma formule me retourne donc la mesure de l'angle saillant, il faut donc que je la soustrait à 360° pour obtenir la bonne mesure[/INDENT]

Voici la formule que j'utilise pour calculer les angles (c'est celle que tu me donnes) :


Sur les cas de tests dont je dispose (y compris un de 180°), je trouve les bons angles donc j'ose espérer que ce n'est pas une coïncidence.

emdro
Membre Complexe
Messages: 2351
Enregistré le: 11 Avr 2007, 16:37

par emdro » 22 Aoû 2013, 15:42

Bon, super ! C'est exactement ça.
Et si ça fonctionne en prime, tout le monde est content !

C'est logique de calculer les angles et (tu as la bonne formule), et sans doute que tu en as besoin par la suite pour tracer ton arc de cercle.
Mais tu auras remarqué que s'il s'agit juste de les comparer, les produits scalaires font amplement l'affaire (t'épargnant le calcul des normes et l'utilisation d'Arccos).

N'oublie pas ton test d'alignement des points dans ton programme avant de te lancer dans la méthode...
Et n'hésite pas à signaler à ton interlocuteur de l'autre forum que la notion d'angles orientés de vecteurs dans l'espace n'existe pas :lol3:.

Tanatoflo
Messages: 8
Enregistré le: 22 Aoû 2013, 08:39

par Tanatoflo » 22 Aoû 2013, 15:49

Oui j'y tacherai :lol3:

Alors par contre je ne sais pas s'il est possible de fermer manuellement un topic ou pas sur ce forum ou de l'indiquer comme étant résolu :s

Quoiqu'il en soit je préfère le laisser ouvert car je vais devoir faire le même genre de calculs mais avec des portions de cônes et de cylindres. Je pense que sur le principe ce sera la même chose mais sait-on jamais...

Je vous tiens au courant si jamais j'ai des problèmes, encore merci !

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 30 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite