Я хочу иметь возможность изменить опорную рамку Device Motion Manager (для гироскопа), чтобы у меня был вектор гравитации на оси Y.
Обычно при запуске обновлений Device Motion Manager вы будете толькоВыровняйте ось Z телефона с гравитацией.
Вы можете изменить это, чтобы использовать магнитометр для выравнивания оси X с магнитным или истинным северным полюсом.При этом моя ось X указывает на север, а ось Z направлена вниз.
Что я хочу сделать, так это чтобы моя ось Y (отрицательная) указывала вниз (чтобы она была выровнена с гравитацией), а такжеОсь X указывает на истинный магнитный полюс.
Я хочу получить такой результат, чтобы, когда мой телефон стоял неподвижно в вертикальной (портретной) ориентации, правая часть телефона была выровнена по северному полюсу, и все мои показания(roll, pitch, yaw) будет читаться как 0. Тогда при этом, если я поверну свой телефон по оси X, тональность изменится, а если я поверну вокруг оси Y, челюсть изменится.
ПокаЯ знаю, что могу установить свою собственную систему отсчета, если умножу на обратное отношение ранее сохраненное отношение (например, я мог бы вручную установить свой телефон в этом положении, сохранить это отношение и просто продолжать умножать новое отношение на обратноесохранено одно и все мои показания будут точно такими, как я хочу).
Но установить его вручную не вариант, поэтомуКак я могу сделать это программно?
Я не думаю, что есть функция для создания моей собственной системы отсчета ориентации, или, если хотя бы была функция для умножения ориентации на матрицу вращения, я мог бырешить это.(потому что я просто умножил бы все отношение на изменение высоты тона на 90 градусов).
Надеюсь, я четко объяснил себе,
Буду признателен за любые предложения.спасибо
PD: это координаты ориентации iPhone:
