Android 的 Sensor.TYPE_ROTATION_VECTOR 的 iOS 等效值

hun*_*ter 6 android augmented-reality ios android-sensors sensors

我正在开发一个跨平台增强现实库,我的 Android 代码运行良好,但我在 iOS 上遇到了问题。我正在使用 Android 的TYPE_ROTATION_VECTOR传感器,它会生成SensorEvent。此事件返回一个包含 5 个值的数组(如此处所述,这些值用于生成旋转矩阵(使用方法)。我只对前 4 个值感兴趣。它们被描述为:

\n
\n

SensorEvent.values[0] x *sin(\xce\xb8/2)

\n

SensorEvent.values[1] y *sin(\xce\xb8/2)

\n

SensorEvent.values[2] z *sin(\xce\xb8/2)

\n

SensorEvent.values[3] cos(\xce\xb8/2)

\n
\n

上述链接继续说

\n
\n

旋转矢量传感器 (TYPE_ROTATION_VECTOR) 以单位四元数的形式提供设备相对于地球坐标系的方向。具体来说,旋转矢量将设备的方向表示为角度和轴的组合,其中设备绕轴 < x , y\n, z > 旋转了角度 \xce\xb8 。旋转向量的前四个元素等于单位四元数 x sin(\xce\xb8/2)、y sin(\xce\xb8/2)、z\n*sin(\xce\xb8 /2)>. 旋转向量的元素是无单位的。

\n
\n

iOS 中的 CoreMotion 提供了四元数读取,但它似乎与 Android 的 TYPE_ROTATION_VECTOR 值没有关联(至少不是直接关联)。我也尝试过 deviceMotionattitude.rotationMatrix直接尝试过deviceMotion的值,但没有用。

\n

所以我的问题是:在iOS中,如何获得相当于Android的TYPE_ROTATION_VECTOR的传感器值?

\n