Я знаю, что система координат (тангаж, рыскание, крен) имеет свои математические недостатки. Однако я действительно надеюсь, что что-то вместо этого или производное от этих координат может быть альтернативой.
То, что я пытаюсь сделать, это переместить устройство (скажем, iphone) в реальный мир и попытаться выяснить рыскание и шаг относительно глаз пользователя. Таким образом, диапазон рыскания должен быть (-180, 180), а диапазон тангажа должен быть (-90, 90). Когда я перемещаю iphone (всегда лицом ко мне) снизу вперед, CMDeviceMotion дает мне изменение высоты тона от 0 до 90, и пока я перемещаю iphone (все еще обращенный ко мне) спереди вверх, CMDeviceMotion дает мне изменение высоты тона от 90 назад до 0. Это хорошо, и я очень доволен данными высоты тона.
Однако, когда шаг близок к 90, рыскание очень шаткое и неустойчивое. Уилл, это не проблема, потому что я могу игнорировать изменение рыскания, когда шаг составляет около 90. Однако реальная проблема заключается в том, что значение рыскания резко меняется до увеличения шага и после уменьшения шага. Я имею в виду, что это не только шаткие, но средние изменения! меняет что-то вроде 180 (Пи). Я думаю, это потому, что координата полностью меняется. Но сейчас я потерялся в передаче координат.