绕Z轴旋转的角度(倾斜手机)

时间:2016-01-04 17:43:31

标签: java android rotation accelerometer angle

当设备倾斜(不平躺)时,我需要获得我的Android设备绕Z轴的旋转角度的准确值。 我使用加速计传感器达到了这个角度,并使用以下代码计算角度:     float [] values = event.values;

double x = values[0];
double y = values[1];
double z = values[2];

double mag = Math.sqrt(x * x + y * y + z * z);

// Normalize the accelerometer vector
x = x / mag;
y = y / mag;
z = z / mag;

int inclination = (int) Math.round(Math.toDegrees(Math.acos(z)));
if (inclination < 25 || inclination > 155) {
    return Orientation.Error;
} else {
    double rotation = Math.toDegrees(Math.atan2(x, y));

但是当设备高速旋转时,该值变得不可靠。 我该如何解决这个问题?

提前致谢,

0 个答案:

没有答案