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