2013-04-30 2 views
5

С помощью event.accelerationIncludingGravity на Android, то она возвращает значениеПреобразование ускорения с силой тяжести в чистое ускорение?

x: -0.2 
y: +0.1 
z: +9.1 

когда покоится на плоской поверхности. Тем не менее, я хочу получить ускорение без гравитации, но event.acceleration не поддерживается. Есть ли способ преобразовать его по математике? В HTML5Rocks приведен пример удаления коэффициента силы тяжести, но он не работает.

// Convert the value from acceleration to degrees acceleration.x|y is the 
    // acceleration according to gravity, we'll assume we're on Earth and divide 
    // by 9.81 (earth gravity) to get a percentage value, and then multiply that 
    // by 90 to convert to degrees.         
    var tiltLR = Math.round(((acceleration.x)/9.81) * -90); 
    var tiltFB = Math.round(((acceleration.y + 9.81)/9.81) * 90 * facingUp); 

Example script graphing acceleration values (не из HTML5ROCKS)

ответ

0

я вижу. У вас есть числа для оси x и y, которые по существу равны 0, продолжайте измерять устройство, опирающееся на плоскую поверхность, и, в среднем, все ваши значения x и y соответственно, и вы получите свою степень ошибок в каждом направлении. Ускорение измеряется в м/с^2. (метры в секунду в квадрате). Гравитационное ускорение на поверхности Земли составляет 9,86 м/с^2. В идеальной физической проблеме все, что вам нужно сделать, это вычесть это число, и вы получите ответ. Если вы пытались вычислить скорость, это было бы более сложной задачей, но гравитационное ускорение Земли не ускоряется. У вас большая степень ошибки в оси z, но не при вычислении степени ошибки в процентах от фактического значения. Или вы примерно на 300 км над уровнем моря.

+0

Я только что испытал, что '9.86 - e.acceleration.z' отлично работает, когда устройство обращено вверх. Но как только я наклоняю его, коэффициент силы тяжести начинает влиять и на другую ось. [Этот скрипт] (http://developer.android.com/reference/android/hardware/SensorEvent.html#values) Я думаю, это полезно, потому что оно требует серьезности, но я не знаю, действительно знаю, как его использовать , (и он написан на Java) –

+0

Да, на самом деле функциональность для аппаратного обеспечения пока что превосходит мобильную разработку. –

Смежные вопросы