Мне нужно перевести матрицу вращения в угол Эйлера.
И после этого блога https://www.learnopencv.com/rotation-matrix-to-euler-angles/, Я видел код Python как (используя порядок 'z, y, x'):
def rotation_matrix_to_euler_angles(matrix):
sy = math.sqrt(matrix[0,0] * matrix[0,0] + matrix[1,0] * matrix[1,0])
singular = sy < 1e-6
if not singular :
x = math.atan2(matrix[2, 1] , matrix[2, 2])
y = math.atan2(-matrix[2,0], sy)
z = math.atan2(matrix[1,0], matrix[0,0])
else :
x = math.atan2(-matrix[1, 2], matrix[1, 1])
y = math.atan2(-matrix[2,0], sy)
z = 0
return [x, y, z]
Или вы можете найти другие решения для других заказов в:
https://www.geometrictools.com/Documentation/EulerAngles.pdf
Но в блоге и в PDF они не упоминали, какую систему отсчета они использовали. Поэтому я не уверен, что это решение - Глобальная система координат или Локальная система координат вращения.