Надеюсь, что эти коды все прояснят. Хотя значения, которые возвращает этот код, не могут быть напрямую сопоставлены со значениями бета и гаммы:
Mozilla возвращает грех угла так, чтобы получить угол ...
X: Math.asin(eventInfo.x)*180/Math.PI
Y: Math.asin(eventInfo.y)*180/Math.PI
Z: Math.asin(eventInfo.z)*180/Math.PI
Webkit возвращает ускорение в каждом топоре. Затем, чтобы получить угол ... (Синг-изменения просто унифицировать возвращаемые значения)
X: Math.asin(clean(eventInfo.accelerationIncludingGravity.x/GRAVITY))*180/Math.PI
Y: Math.asin(clean(-eventInfo.accelerationIncludingGravity.y/GRAVITY))*180/Math.PI
Z: Math.asin(clean(-eventInfo.accelerationIncludingGravity.z/GRAVITY))*180/Math.PI
Быть чистым: (потому что иногда данные возвращаются, даже без ускорения телефона, это больше, чем 9,8)
function clean(data)
{
if(data<-1.0)
{
return -1.0;
}
else
{if(data>1.0)
{
return 1.0;
}else
{
return data;
}}
}
Значение каждого топора:
X-> наклон мобильного телефона вправо или влево. Будет +, если вы наклоните телефон вправо (по часовой стрелке), удерживая кнопки громкости вверх.
Y-> Сообщает, находится ли мобильный телефон вверх, если кнопка блокировки / включения находится в верхнем положении (угол +) или вниз (угол -). Это говорит о наклоне мобильного телефона относительно пола. (угол вектора Y с плоскостью X-Z)
Z-> Сообщает, если мобильный экран направлен вверх (угол +) или вверх ногами (угол -). Это угол вектора Z на плоскости Y-X
Надеюсь, это достойно вас!
В любом случае, я работаю над некоторыми классами GWT, чтобы облегчить работу с этим :) Это не сложно, но у меня не так много времени.
Я скажу тебе