ios - 使用 CMDeviceMotion 时,如果设备竖直向上(pitch = 90),它真的很不稳定。无论如何要解决这个问题?

标签 ios math pitch core-motion

我知道(俯仰、偏航、横滚)坐标系在数学方面有其自身的缺陷。但是,我真的希望可以替代或从该坐标派生的东西可以替代。

我想做的是在现实世界中移动设备(假设它是一部 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/

相关文章:

iphone - 更改音调(不实时)

ios - 不响应触摸事件

iOS:如何在没有 "dimm"的情况下禁用 UISegmentControl - 效果?

ios - 更新模型中数据更新的 View Controller

c++ - 在给定每行按钮数的情况下查找需要多少行?

Excel将字符串转换为时间的公式

python - 使用滚动,俯仰和偏航使图像变形

iphone - C/C++/Obj-C 实时算法从人声输入中确定音符(不是音高)

ios - 检测用户何时停止触摸 UIButton

python - 斐波那契常数倒数