Comment changer chiralité de coordonnées?
-
02-10-2019 - |
Question
Comment convertir les coordonnées d'Euler E1 = (x1, y1, z1, yaw1, Pitch1, roll1) E2 = (x2, y2, z2, yaw2, pitch2, roll2) où x, y, z sont les coordonnées d'un point et de lacet, tangage, roulis direction / orientation d'un vecteur dont l'origine est le point. lacet est de l'ordre y, tangage autour de x, rouleau autour de z. Ils sont effectués dans cet ordre. Yaw 0 est normal au plan xy (opposée à z dans E1 et égal à z dans E2).
E1 utilise un espace droitier et E2 a laissé l'espace mains. Les deux ont la même origine, la même direction pour y (en haut) et z (dans l'écran). Ils diffèrent par x qui est à gauche sur E1 et à droite sur E2. Ils diffèrent aussi par leur sens de rotation positives.
J'ai un type personnalisé pour maintenir la représentation scalaire et à convertir et à la représentation équivalente WPF matrix3D.
La solution
En fin de cette solution fonctionne pour moi:
Point6DoF right = new Point6DoF(
-left.X, left.Y, left.Z,-left.Yaw, left.Pitch, -left.Roll)
où Point6DoF est la classe qui détient les angles de la position et Euler.