Согласно документу ARKit, т. Е. ARCamera , я вижу, что есть 2 способа описания ориентации камеры: camera.transform и eulerAngles .Сначала я преобразовываю матрицу вращения frame.camera
в углы Эйлера, а затем выходные значения не равны eulerAngle
значениям.
Почему?В чем разница между значениями camera.transform
и eulerAngle
в ARKit?
Подробности преобразования описаны следующим образом.
Используйте функцию в библиотеке Eigen для получения углов Эйлера,Rx.eulerAngles(0, 1, 2)
, где Rx
- матрица вращения frame.camera.transform
.
Например:
frame.camera.transform:
Rx =
[ -0.0443775, -0.900017, 0.433589;
0.998663, -0.0284454, 0.043167;
-0.0265174, 0.434925, 0.900076; ]
Выходы Rx.eulerAngles(0, 1, 2)
равны [ 3.09367, 2.69312, -1.52153]
eulerAngle
значения [ -0.449955, -0.0294528, -1.60239]