У меня возникла проблема с решением странной ошибки, с которой я столкнулся, и мне было интересно, есть ли у кого-то еще аналогичная проблема или может предложить решение.Ошибка iOS-гироскопа при вращении вокруг оси z
Я использую javascript для доступа к гироскопу iOS и интересуюсь вращением вокруг оси z; Мне нужен угол поворота, когда устройство лежит ровно на столе.
Однако гироскоп, кажется, выключен примерно на 20deg за каждые 360deg вращения. Если я выровняю устройство с чем-то на столе, поверните устройство 360deg, вернув его в исходную точку, показание угла составляет ~ 340deg, а не 360 или 0. Это усугубляется, поэтому после 1080deg вращения угол отклоняется на ~ 60deg , если я поворачиваю в обратном направлении, он меняет ошибку (в этом случае после -1080deg вращения он вернется к 0deg).
Я тестировал это на Ipad 2, 3 и iPhone 4, и он видел подобную проблему на всех из них - хотя iPhone больше похож на 8deg за каждые 360deg. Я также пытался использовать библиотеки, такие как gyro.js, но тот же результат.
Я собрал короткий пример кода, чтобы продемонстрировать. http://codepen.io/CharlesSmart/pen/ZYNXEJ?editors=101
window.addEventListener('deviceorientation', orientationHandler, false);
function orientationHandler(e)
{
var alpha = e.alpha
var div = document.getElementById('text');
div.innerHTML = alpha;
}
Am I злоупотребляя ориентации АФИ в некотором роде? Может быть, это проблема с устройствами, которые я использую?
Любые советы будут оценены.