2012-04-04 9 views
7

Я пытаюсь работать с 3D-вращениями, но, похоже, я не понимаю, как работает каркас.объяснение матрицы вращения iOS

Например я получаю эти данные:

рыскания -1,010544 шаг 0,508249 1,128918 рулет

Тогда я печатаю соответствующая матрица вращения

  • 0,599901 -0,128495 -0,789689
  • 0,740043 0,464230 0.486649
  • 0,304065 -0,876344 0,373584

После прочтения API и вики, я уверен, что должен быть общий способ создания матрицы вращения из углов Эйлера. Я пробовал все эти here, никаких результатов.

Пропустить что-то или как это сделать?

+0

Бесстыдный штекер для работы матриц вращения (более общих или связанных с графикой): [Математика за преобразованиями] (http://ronnqvi.st/the-math-behind-transforms/). Прокрутите вниз до заголовка «Вращение» –

ответ

2

Ну, iOS или CoreMotion обеспечивают оба. RotationMatrix и представление угла Эйлера. Документация: here.

Но если вам интересно, как этот расчет работает, посмотрите here. Подводя итог: каждый угол Эйлера может быть представлен матрицей вращения, которая описывает поворот вокруг одной оси. Поскольку есть три угла, вам просто нужно их объединить. Но будьте осторожны! Углы Эйлера не однозначны, так как существуют разные порядки, в которых матрицы вращения могут быть умножены.

EDIT: Вы связаны с вычислением кватернионов. Или я совершенно неправ?

+0

Спасибо, я решил в то же время! – GooKSL

+0

Акцент на * «Остерегайтесь! Эйлеровские углы не однозначны» * – Jacksonkr

Смежные вопросы