安卓加速度计角度计算

3

有谁能给出一些想法,通过加速度计的x、y、z值计算指南针应该旋转多少角度才能指向重力方向?

1个回答

1

我认为当指南针指向地球时,X 应该为 0,y 应该为正数,而 z 应该接近于 0。(这意味着手机应该垂直持有)。

一般来说,从 0 角度开始,指南针的角度应该是类似于:

float accelerometerMaxRange = 10; // This is NOT right, but it's a good value to work with
float newAngle = 0;
if (z > 9) {
    // Phone is horizontally flat, can't point towards gravity, really. Do whatever you think is right
} else {
    newAngle  = (float)(x * 90 / accelerometerMaxRange);
    if (y < 0) {
        newAngle = 180 - newAngle;
    }
}

最重要的问题是,accelerometerMaxRange 是多少呢? ;) - Tony Bogdanov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接