Как изменить рулонность координат?
-
02-10-2019 - |
Вопрос
Как преобразовать из координат 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 - это класс, который удерживает позицию и углы Эйлера.