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 : 2019/03/12 17:36 de root