如何使用TYPE_ROTATION_VECTOR获取全局Z中的加速度

时间:2016-11-19 01:43:45

标签: android transform

在我的应用程序中,我使用accels传感器来计算用户是否在不顾手机方向跳跃。所以我试图使用TYPE_ROTATION_VECTOR创建旋转矩阵,但是在我对矢量多次之后,值不能正确显示。作为测试,我实际上使用的是TYPE_GRAVITY_SENSOR值,就好像变换是正确的一样,Z应该始终显示重力。我在这里做错了什么?

       switch(event.sensor.getType()) {
        case Sensor.TYPE_GRAVITY:

            if (mRotationMatrix[0] != 0) {

                Matrix.multiplyMV(transformedGravity, 0,
                        mRotationMatrix, 0,
                        new float[]{event.values[0], event.values[1], event.values[2], 0}, 0);
                // If I tilt phone, and break in debugger, transformedGravity[2] is not 9.8, and [0] is something like 6mps.
            }
            break;
        case Sensor.TYPE_ROTATION_VECTOR:
            SensorManager.getRotationMatrixFromVector(mRotationMatrix,
                    event.values);

            break;
        }

0 个答案:

没有答案