Android 提供旋转矢量传感器和方向传感器。我知道它们返回不同的数据,因为对于矢量传感器我们有角度的罪,在方向传感器我们有角度。但是概念上的区别是什么?我无法从文档中理解。哪一个提供了设备在三维空间中的方向?我很困惑!
最佳答案
较旧的 ORIENTATION 传感器使用三个角度报告方向。该坐标系的问题在于它存在“万向节锁定”问题:当实际方向矢量接近垂直时,其中一个坐标变为 90 度或 -90 度,其余两个坐标变得无法解释或危险地非规范化。
较新的 ROTATION 传感器使用四分位坐标报告方向,使用起来更复杂,但不会遇到万向节锁定问题。当使用四元数坐标报告方向时,无论方向是什么,您都可以确定设备的精确方向。
四元数的计算效率也更高。您无需调用昂贵的三角函数即可将四元数旋转应用于向量。如果没有提供 w 坐标,您仍然可以通过一个 sqrt 调用计算 w,而三个 sin 和三个 cos 函数调用三个角欧拉形式的方向坐标。
简而言之:ORIENTATION 式传感器做错了。它们已在 API 9 中通过用 ROTATION 传感器替换它们进行了修复。
关于android - Android中旋转矢量传感器和方向传感器之间的概念区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032825/