Если вы получаете X = 1 с телефоном прямо перед собой, это звучит так, как будто вы держите телефон в горизонтальной плоскости, с кнопкой справа, это правильно?
Акселерометр сообщает силу гравитации, поэтому X = 1 означает, что вы перемещаетесь вниз по оси X на экране.
Это означает, что ваше направление + X (в пикселях) на экране действительно является направлением + Y (рисунок в виде буквы) в вашем мире OpenGL, что соответствует показанию акселерометра -X.
В этой ориентации перемещение телефона влево и вправо даст показания акселерометра + Y и -Y соответственно. Насколько сильны показания, зависит от того, насколько сильно вы перемещаете телефон. Если вы двигаетесь медленно, показания могут быть неотличимы от нормального шума в данных. Если вы двигаетесь с той скоростью, с которой телефон упадет, если вы уроните его, ваши показания будут близки к «1» («1 G-сила» или «1 гравитация»). Если вы двигаете его быстрее, вы будете получить более высокие показания.
ПРИМЕЧАНИЕ : если вы просто поверните, а затем прекратите движение, показания акселерометра вернутся к 0. Гравитация - это мера ускорения («ускорение под действием силы тяжести»!), А не лицом. Вот почему компас стал важным.
Если наклонить экран телефона вниз или вверх, показания Z акселерометра изменятся, когда сила тяжести тянет «в» или «от» экрана. При полностью вертикальном положении экрана (при удерживании телефона прямо перед лицом в любой ориентации) значение Z-показания акселерометра должно быть равно 0.
Как вы переводите эти данные ориентации на камеру, зависит от вашего приложения. Просто помните, что «управлять» камерой, перемещая телефон, будет непросто, так как вам нужно учитывать как ускорение, так и замедление движений пользователя!
Чтобы помочь вам визуализировать это, посмотрите пример проекта XCode "Акселерометр". Просто найдите это слово в документах, и вы увидите пример проекта, который вы можете создать и поиграть, чтобы понять, что означает каждая ось.
Удача!