gpt4 book ai didi

android - SensorManager.getOrientation 给出非常不稳定的结果

转载 作者:太空狗 更新时间:2023-10-29 15:19:48 32 4
gpt4 key购买 nike

我在以下的帮助下获得了我的手机方向

SensorManager.getOrientation

但是结果很不稳定,大概+-8度,有什么好的过滤结果的方法吗?

这是我获取值的方式:

public void onSensorChanged(SensorEvent event) 
{
switch (event.sensor.getType ()){
case Sensor.TYPE_ACCELEROMETER:
aValues = event.values.clone();
break;
case Sensor.TYPE_MAGNETIC_FIELD:
mValues = event.values.clone();
break;
}
float[] R = new float[16];
float[] orientationValues = new float[3];

if( aValues == null || mValues == null )
return;

if( !SensorManager.getRotationMatrix (R, null, aValues, mValues) )
return;

float[] outR = new float[16];
SensorManager.remapCoordinateSystem(R, SensorManager.AXIS_Z, SensorManager.AXIS_MINUS_X, outR);

SensorManager.getOrientation (outR, orientationValues);

orientationValues[0] = (float)Math.toDegrees (orientationValues[0]);
orientationValues[1] = (float)Math.toDegrees (orientationValues[1]);
orientationValues[2] = (float)Math.toDegrees (orientationValues[2]);
}

最佳答案

只需通过计算平均值来缓冲值(有许多不同的计算可能性:http://en.wikipedia.org/wiki/Average#Types)。还要考虑到缓冲越多,应用对变化的 react 就越慢!

关于android - SensorManager.getOrientation 给出非常不稳定的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989103/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com