如何使用phonegap Accelerometer API计算设备倾斜度

时间:2014-06-14 13:50:51

标签: android ios cordova

我目前正在PhoneGap / Cordova中构建一个应用程序来测量斜坡的角度,使用该设备作为一种精神层面。因此,我需要使用来自PhoneGap的加速度计api,从加速度计读取的读数中获得倾斜角度。

以下是加速度的onSuccess函数中的代码,该函数通过了Acc,即设备的加速度。

function onSuccess(acc) {

// Using x y and z from accelerometer, calculate x and y angles

var x_val, y_val, z_val, result;
var x2, y2, z2; //24 bit

// Lets get the deviations from our baseline
x_val = parseFloat(acc.x);
y_val = parseFloat(acc.y);
z_val = parseFloat(acc.z) - 9.8;

// Work out the squares 
x2 = (x_val*x_val);
y2 = (y_val*y_val);
z2 = (z_val*z_val);

//X Axis
result=Math.sqrt(y2+z2);
result=x_val/result;
accel_angle_x = Math.atan(result);

//Y Axis
result=Math.sqrt(x2+z2);
result=y_val/result;
accel_angle_y = Math.atan(result);

el.innerHTML = 'Acceleration X: ' + acc.x + ' ' + accel_angle_x + 'deg <br />' +
                        'Acceleration Y: ' + acc.y  + ' ' + accel_angle_y + 'deg <br />' +
                        'Acceleration Z: ' + acc.z + '<br />' +
                        'Timestamp: '      + acc.timestamp + '<br />';

}

该代码改编自http://www.hobbytronics.co.uk/accelerometer-info

中的Java示例

假设x y z的基线分别为0,0,9.8。

我从上面的代码得到的输出似乎是无意义的,它肯定不是斜率的角度。

如何使功能输出设备倾斜度?

1 个答案:

答案 0 :(得分:0)

deg = acceleration.y / 10 * 90;

查看Link 1 Link 2