Core Motion - преобразование локальных углов Эйлера в другую систему отсчета - PullRequest
1 голос
/ 21 января 2011

У меня возникла проблема с математикой, связанной с преобразованием локальных углов Эйлера в углы другой системы отсчета.Допустим, у нас iPhone выровнен по оси транспортного средства, и я хочу измерить угол крена, тогда угол крена iPhone равен углу крена устройства.Но что делать, если на iPhone установлен тент.В этом случае мне пришлось бы преобразовать локальные углы Эйлера в другую систему отсчета (например, автомобили).Может ли кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 29 марта 2012

Полагаю, вы хотите знать рулон машины, а не телефон.Телефон должен знать начальную опорную рамку.Итак, предположим, вы выровняете телефон с машиной на старте.Затем нажмите кнопку на телефоне.При нажатии этой кнопки в вашем коде сохраните настройку, которую вы получите от CMDeviceMotion.

Если вы хотите узнать, как рулит автомобиль в любой момент после этого, возьмите текущую позицию из CMDeviceMotion.Затем вызовите multiplyByInverseOfAttitude:, указав в качестве параметра исходную опорную рамку.Это даст вам разницу между исходной системой отсчета и текущей.

Если вы берете из этого свойство крена, это должен быть угол крена автомобиля.

...