Это глобальная система координат или локальная система координат вращения - PullRequest
0 голосов
/ 11 ноября 2018

Мне нужно перевести матрицу вращения в угол Эйлера.

И после этого блога 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 они не упоминали, какую систему отсчета они использовали. Поэтому я не уверен, что это решение - Глобальная система координат или Локальная система координат вращения.

...