我目前正在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。
我从上面的代码得到的输出似乎是无意义的,它肯定不是斜率的角度。
如何使功能输出设备倾斜度?