Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calcul d'angles à partir de 3 landmarks (x, y, z)

7 décembre 2019 à 13:33:51

Salut tout le monde ! 

Je travaille en ce moment sur la modélisation de nerf sur un logiciel 3D gratuit. Ce logiciel m'a permis de positionner 3 landmarks par ramifications nerveuses : j'aimerai pouvoir calculer l'angle à partir de ces points. Ces points sont eux même caractérisés par 3 coordonnées (x, y, z). 

J'aime beaucoup la biologie mais je suis une vraie bille en maths. Est-ce que quelqu'un pourrait m'aider ? 

Merci d'avance ! 

  • Partager sur Facebook
  • Partager sur Twitter
7 décembre 2019 à 15:01:50

Bonjour ! Moi c'est le contraire : je n'ai pas peur des problèmes de maths, mais j'ignore complètement, à ma grande honte, ce qu'est un landmark... ;)

Est-ce que ta question est de savoir comment calculer l'angle entre deux vecteurs donnés par trois points ?

Si oui, une méthode classique consiste à utiliser le produit scalaire.

On sait que :

\( \vec{AB} \cdot \vec{AC} = AB \times AC \times \cos(\vec{AB}, \vec{AC}) \)

donc

\( \cos(\vec{AB}, \vec{AC}) = \dfrac{ \vec{AB} \cdot \vec{AC} }{ AB \times AC } \)

À partir du cosinus, on en déduit un angle entre 0 et 180° (ou entre -90° et 90°).

-
Edité par robun 7 décembre 2019 à 15:02:40

  • Partager sur Facebook
  • Partager sur Twitter
7 décembre 2019 à 22:37:41

Salut et merci ! 

En fait, je finis mon master de paléontologie et pendant mon stage de cet été j'ai reconstruit le système nerveux du T-rex en 3D. Et sur un logiciel on peut poser des points géoréférencés sur notre modèle 3D afin de faire des mesures. Ici j'ai posé 3 points, un au niveau d'un canal principal, un sur une ramification et un autre au milieu pour calculer un angle. 

Ici je sais pas trop comment faire compte tenu que j'ai mes 3 points sont caractérisés par des coordonnées x, y et z. 

Je suis désolé, ça fait longtemps que je n'ai pas fait de trigonométrie et je suis carrément rouillé. 

  • Partager sur Facebook
  • Partager sur Twitter
8 décembre 2019 à 11:45:29

Voilà un master qui doit être passionnant !

Tu ne te souviens plus comment on calcule un produit scalaire et une distance avec des coordonnées ? On apprend ça au lycée (vecteurs en seconde, produit scalaire en première...) ;)

J'appelle tes trois points A, B et C. A est le point au milieu, donc on cherche l'angle entre les vecteurs \( \vec{u}=\vec{AB} \) et \( \vec{v}=\vec{AC} \).

1) Calculer les coordonnées de ces deux vecteurs :

\( x_u = x_B-x_A ; \;\; y_u = y_B-y_A ; \;\; z_u = z_B-z_A \)

\( x_v = x_C-x_A ; \;\; y_v = y_C-y_A ; \;\; z_v = z_C-z_A \)

2) Produit scalaire :

\( \vec{u} \cdot \vec{v} = x_u x_v + y_u y_v + z_u z_v \)

3) Distances :

\( AB = \| \vec{u} \| = \sqrt{x_u^2 + y_u^2 + z_u^2} \)

\( AC = \| \vec{v} \| = \sqrt{x_v^2 + y_v^2 + z_v^2} \)

4) Angle à 180° près :

\( \alpha = \arccos{ \dfrac{\vec{u} \cdot \vec{v}}{AB \times AC} } \)

-
Edité par robun 8 décembre 2019 à 11:47:08

  • Partager sur Facebook
  • Partager sur Twitter
8 décembre 2019 à 14:34:05

Edit avec codage Latex

mon code latex ne fonctionne pas

 pourtant il a fonctionné sur l'autre forum (fonctionnement du site) 

Bonjour

la formule de Robun est exacte

j'essaye de donner ici une réponse plus explicite(pas de contredire quelqu'un d'autant plus si il dit vrai)  

Je vais  considérer ici que je vais traiter le premier landmarks des deux nerfs(vous ferez de même avec les autres )

donc ici premier landmarks du nerf 1  est

 $$A=(A_x,A_y,A_z)=(5.10058,3.26554,5.31032)$$

le premier landmarks du nerf 2 est

$$B=(B_x,B_y,B_z)=(5.10923,3.20421,5.14702)$$

il s'agit de coordonnées cartésiennes

on peut donc poser l'origine du repère

$$O=(0,0,0)$$

vous recherchez l'angle géométrique engendré par AOB

comment écrit-on en latex?

bon sinon pas besoin de latex je vais essayer de le faire clair sans latex

$$\overrightarrow {OA}$$

désignera le vecteur d'origine O et de point d'application A

$$\overrightarrow {OB}$$

désignera le vecteur d'origine O et de point d'application B

en munissant l'espace vectoriel d'une structure affine

$$\overrightarrow {OP}=P-O$$

et ici comme

 $$O=(0,0,0)$$

on a 

$$\overrightarrow {OP}=P$$

$$\langle \overrightarrow {OA}|\overrightarrow {OB}\rangle $$

désignera le produit scalaire euclidien de notre espace vectoriel eucliden muni de sa structure affine

alors

$$\langle \overrightarrow {OA}|\overrightarrow {OB}\rangle =A_x.B_x+A_y.B_y+A_z.B_z$$

on rappelle que c'est exact si

 $$O=(0,0,0)$$

mais pas sinon

On muni l''espace vectoriel (qui est la direction  de notre espace affine) de sa distance euclidienne  

OA est la distance de O à A

OB est la distance de O à B

alors la distance euclidienne est donnée par :

attention ce n'est valable que si $$O=(0,0,0)$$

$$OA = \sqrt{A_x^2+A_y^2+A_z^2}$$

et

$$OB = \sqrt{B_x^2+B_y^2+B_z^2}$$

nommons

$$\theta $$

l'angle géométrique que l'on recherche

$$\theta =arccos \left(\dfrac {\langle \overrightarrow {OA}|\overrightarrow {OB}\rangle}{OA.OB} \right)$$

en fait c'est la formule de Robun en considérant que l'origine est A au lieu de O dans ma réponse

-
Edité par DominiqueSicilia 8 décembre 2019 à 15:52:19

  • Partager sur Facebook
  • Partager sur Twitter