我正在做一个 Opengl 应用程序,如果 Android 设备沿 Z 轴旋转/倾斜,我必须旋转相机。
我尝试过SensorManager.getOrientation(R, orientVals);
使用磁性和加速度传感器。但数值波动很大。
我的设备中也可以使用陀螺仪。
由于我正在对相机进行动画处理(旋转),因此我需要平滑的旋转值
请在这方面指导我。
See 如何使用 Android 中的加速度计值计算特定轴的旋转速率 https://stackoverflow.com/questions/22512348/how-do-you-calculate-the-rate-of-rotation-using-the-accelerometer-values-in-andr/22516740#22516740关于如何读取 Android 的软件衍生传感器,这些传感器结合了来自加速计、磁力计和(如果有)陀螺仪的数据。
要平滑值,请使用低通滤波器或(更好但更复杂)卡尔曼滤波器 http://en.wikipedia.org/wiki/Kalman_filter。我怀疑 Android 的软件衍生传感器(例如“旋转传感器”)已经使用卡尔曼滤波器来组合来自不同传感器的数据。 (可以搜一下源码……)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)