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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top