在我的应用程序中,我使用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;
}