Как конвертировать из координат Эйлера
E1 = (x1, y1, z1, yaw1, pitch1, roll1)
к E2 = (x2, y2, z2, yaw2, pitch2, roll2)
где x, y, z - координаты точки
и рыскание, тангаж, крен в направлении / ориентации вектора, источником которого является точка.
рыскание вокруг y, шаг вокруг x, вращение вокруг z. Они выполняются в таком порядке. Yaw 0 является нормальным для плана xy (противоположно z в E1 и равно z в E2).
E1 использует правостороннее пространство, а E2 левостороннее.
Оба имеют одинаковое происхождение, одинаковое направление для y (вверху) и z (на экран).
Они отличаются на x, который находится слева на E1 и справа на E2.
Они также различаются по направлению положительных вращений.
У меня есть собственный тип для хранения скалярного представления и для преобразования из и в эквивалентное представление WPF Matrix3d.