4-й курс/закрытая зона
OrientationEventListener - грубый способ определения ориентации экрана
SensorEventListener - точный способ определения положения в пространстве
Вычисление положения с помощью акселерометра и датчика магнитного поля
Датчик ориентации — это комбинация датчика магнитного поля, выполняющего роль электронного компаса, и акселерометра, измеряющего наклон и вращение.
Если вы знакомы с тригонометрией, то можете самостоятельно вычислять необходимые данные и определять положение устройства относительно всех трёх осей, основываясь на показаниях акселерометра и датчика магнитного поля. Однако есть хорошая новость - Android может сделать все вычисления сам.
При использовании стандартной системы отсчета положение устройства вычисляется в трёх измерениях. Как и в случае с акселерометром, устройство рассматривается в состоянии покоя, лёжа экраном вверх на плоской поверхности.
Ось X (направление). Направление устройства при движении вокруг оси X; 0°/360° — север, 90° — восток, 180° — юг, 270° — запад.
Ось Y (наклон). Угол наклона устройства при вращении относительно оси Y. Он равняется 0°, если устройство лежит на задней крышке, –90° — если расположено вертикально (верхняя часть устройства указывает вверх), 90° — если перевернуто, 180°/–180° — если экраном вниз.
Ось Z (поворот). Поворот писывает боковой наклон устройства по оси Z между –90° и 90°. При 0° устройство лежит на задней крышке, при –90° экран повернут влево, при 90° — вправо.
Существует два способа определения положения устройства. Можно сделать запрос напрямую к датчику ориентации или получить необходимые данные с помощью акселерометра и датчика магнитного поля. Второй вариант более медленный, но имеет повышенную точность и возможность изменять систему отсчета при определении положения в пространстве. Рассмотрим оба варианта.
Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью