Создайте матрицу вращения CMAttitude из значений крена, тангажа и рыскания

Я пытаюсь получить матрицу вращения (стиль Apple, CMAttitude) из значений крена, шага и рыскания. Кто-нибудь знает, как работает это преобразование?

Пример:

крен: 1,01315, шаг: 1,54177 и рыскание: -0,361097

должна привести к этой матрице вращения:

введите здесь описание изображения

Спасибо!


person alxppp    schedule 01.11.2013    source источник


Ответы (1)


Я думаю, вы могли бы добиться этого с помощью CATransform3D.

Вы бы использовали эти два вызова:

CATransform3D CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat y, CGFloat z);
CATransform3D CATransform3DRotate (CATransform3D t, CGFloat angle, CGFloat x, CGFloat y, CGFloat z)

Вам нужно выяснить, как крен, тангаж и рыскание соответствуют вашей системе координат (обычно это x, y, z, но может быть и z, x, y).

затем просто сделайте комбо следующим образом:

CATransform3D transform = CATransform3DMakeRotation(anglex, 1.0, 0.0, 0.0);
transform = CATransform3DRotate(transform, angley, 0.0, 1.0, 0.0);
transform = CATransform3DRotate(transform, anglez, 0.0, 0.0, 1.0);

ваше преобразование теперь будет содержать матрицу, которую вы ищете.

person HalR    schedule 02.11.2013