Janus74 был прав.
Я решил это проблему не до конца, путем простого извлечения вектора из квантериона.
Датчик ориентации возвращает кватернион вращения устройства, преобразовав который можно получить вращение в углах Эйлера.
Преобразование из
этого вопроса и из
этой статьи на википедии лично у меня не работают (буду рад если кто поделится работающим вариантом), поэтому я просто извлек из квантериона его вектор, и домножил его на 180.
Значение получается очень приблизительное, но зато с очень минимальными погрешностями.
Vector3 toEuler(Quaternion q)
{
return new Vector3(q.X * 180, q.Y * 180, q.Z * 180);
}
Статья msdn с приложением, использующим Датчик Ори...
Решение вопроса получения поворота на CodeRoad
Вопрос на StackOverflow на тему преобразования
Вопрос на CodeRoad на тему преобразования
Ещё один алгоритм преобразования