我正在使用 TYPE_MAGNETIC_FIELD/TYPE_ACCELEROMETER 传感器来创建指南针。
我调用 getRotationMatrix 然后 remapCoordinateSystem (总是横向)交换轴然后 getOrientation 然后我取我当前需要的轴索引 0 然后我调用 toDegrees 然后我将它设为 0-360 范围
价值=(价值+ 360)% 360;
现在一切都很好,除了它波动有点大,所以我去搜索上帝(谷歌)并查找低通滤波器分配和大多数不工作那么好,但我发现一个几乎工作。
newval = oldVal + ALPHA * (newval-oldVal);
阿尔法约0.2-0.5
所以现在在 180(-180 旋转)它快速跳到 0,然后它转到 181(-179 旋转)但是如果我移除过滤器它不会这样做。
过滤器有什么问题或者我该如何解决这个问题。
Android 2.2 所以没有 TYPE_LINEAR_ACCELERATION 或 TYPE_ORIENTATION(已弃用)
谢谢