Вопрос

Как преобразовать из координат EULER E1 = (x1, y1, z1, yaw1, pitch1, Roll1) до e2 = (x2, y2, z2, yaw2, hotel2, Roll2) где x, y, z - координаты точки и Яу, шаг, рулон в направлении / ориентацию вектора, какое происхождение является точкой. Яу вокруг y, шаг вокруг х, бросается вокруг z. Они выполняются в этом порядке. Яу 0 нормальный к плану XY (напротив Z в E1 и равен Z в E2).

E1 использует правильное пространство и E2 левша. Оба имеют одинаковое происхождение, одно и то же направление для Y (Top) и Z (в экран). Они отличаются на X, что находится влево на E1 и вправо на E2. Они также отличаются по их направлению положительных вращений.

У меня пользовательский тип для удержания скалярного представления и преобразование из эквивалентного представления WPF Matrix3D.

Это было полезно?

Решение

В конце концов это решение работает для меня:

Point6DoF right = new Point6DoF(
    -left.X, left.Y, left.Z,-left.Yaw, left.Pitch, -left.Roll)

Там, где Point6Dof - это класс, который удерживает позицию и углы Эйлера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top