doc:images:3d
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| doc:images:3d [2019/03/12 17:36] – Création avec "Matrice de rotation pour mettre un point sur un axe" root | doc:images:3d [2019/10/23 10:37] (Version actuelle) – mhtml -> html root | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | Ici, tout le code est présenté pour la "Point Cloud Library" | + | Ici, tout le code est présenté pour la [[lib:pcl|Point Cloud Library]] mais c'est aussi applicable pour OpenGL. |
| - | ===Matrice de rotation pour mettre un point sur un axe=== | + | ===Matrice de rotation pour mettre un point sur l'axe X=== |
| Rappel : rotation autour de l'axe 0,0,0. | Rappel : rotation autour de l'axe 0,0,0. | ||
| Ligne 13: | Ligne 13: | ||
| Puis autour de l'axe Y mais la coordonnée en X a changée. | Puis autour de l'axe Y mais la coordonnée en X a changée. | ||
| <code cpp> | <code cpp> | ||
| - | Eigen:: | + | Eigen:: |
| </ | </ | ||
| + | |||
| + | Seconde solution : utiliser directement les quaternions. | ||
| + | |||
| + | <code cpp> | ||
| + | Eigen:: | ||
| + | Eigen:: | ||
| + | rotAxe.setFromTwoVectors(Eigen:: | ||
| + | transform.prerotate(rotAxe); | ||
| + | </ | ||
| + | ===Matrice de rotation sur la base d'un vecteur unitaire=== | ||
| + | $$R = | ||
| + | \pmatrix{ | ||
| + | —\mathbf u_1—\\ | ||
| + | —\mathbf u_2—\\ | ||
| + | —\mathbf u_3—} = | ||
| + | \pmatrix{ | ||
| + | {n_y\over\sqrt{n_x^2+n_y^2}} | ||
| + | {n_xn_z\over\sqrt{n_x^2+n_y^2}} & {n_yn_z\over\sqrt{n_x^2+n_y^2}} & -\sqrt{n_x^2+n_y^2} \\ | ||
| + | n_x & n_y & n_z}$$ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ===Fusion de plusieurs matrices de rotation / translation=== | ||
| + | Si on souhaite regrouper plusieurs matrices de rotation et de translation dans une seule, il faut : $R = R_3 * R_2 * R_1 $ | ||
| + | |||
| + | |||
doc/images/3d.1552408615.txt.gz · Dernière modification : de root
