我一直在尝试为 Android 开发行人航位推算应用程序,在处理了步数检测和步长组件之后,我决定解决方向确定问题。
在偶然发现了几篇关于坐标 转换的帖子(甚至与经常回答的人聊天)之后,我的结果逐渐好转,但仍然有一些困扰我的事情。
本实验:
我往北走,转身又往南走。向 West 重复该过程,然后向 East 重复该过程。
问题:
我预计,在沿多个方向直行时,X 和 Y 值的值会随着脚步声而振荡,并且始终具有相对稳定的 Z 值。相反,Y 值以这种方式运行,而Z 值具有其预期行为。怎么来的?这与我不使用remapCoordinates()有什么关系吗?(见图1)
我预计角度图会在 180º 和 -180º 左右跳跃,但为什么它们也会在 35º 左右跳跃?(见图2)
笔记:
- 我正在使用重力和磁力计值来计算旋转矩阵,并使用 OpenGL 的multiplyMV()将其相乘;
- 我没有使用remapCoordinates(),因为我认为我不需要:手机在我的口袋里是直立的(Y 指向上/下,Z 通常向前)并且应该向前和向后移动 45º,在最坏的情况下;
- 方位角值似乎没问题,并且没有问题 2 中描述的振荡。(参见图 3)