作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我知道(俯仰、偏航、横滚)坐标系在数学方面有其自身的缺陷。但是,我真的希望可以替代或从该坐标派生的东西可以替代。
我想做的是在现实世界中移动设备(假设它是一部 iPhone),并试图找出与用户眼睛相关的偏航和俯仰。因此,偏航范围应为 (-180, 180),俯仰范围应为 (-90, 90)。当我将 iphone(始终面向我)从底部移动到前面时,CMDeviceMotion 使我的音高从 0 变为 90,而当我将 iphone(仍然面向我)从前面移动到顶部时,CMDeviceMotion 使我的音高从 90 向后变化到 0。这些都很好,我对音高数据非常满意。
但是,当俯仰接近 90 度时,偏航非常不稳定。威尔,这不是问题,因为当俯仰角约为 90 度时,我可以忽略偏航角的变化。但是,真正的问题是偏航角的值在俯仰角增加之前和俯仰角减小之后发生了巨大变化。我的意思是它不仅不稳定,而且平均变化!改变 180(Pi) 之类的东西。我想那是因为坐标完全改变了。但是我现在迷失了坐标转移。
最佳答案
您刚才描述的这种困惑的解决方法正是您不应该使用滚动、俯仰和偏航的原因。
你要么在这条路上走得更远,把烂摊子弄得更大,要么use rotation matrices or quaternions .
关于ios - 使用 CMDeviceMotion 时,如果设备竖直向上(pitch = 90),它真的很不稳定。无论如何要解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665306/
我是一名优秀的程序员,十分优秀!