CMAttitude和CATransform3D是否与旋转矩阵相关?

Ale*_*one 6 iphone matrix catransform3d ios core-motion

我正在研究核心运动类CMAttitude,它可以将设备的方向表示为3x3旋转矩阵.与此同时,我看了一下CATransform3D,其中包含了视图的态度以及缩放.这CATransform3D是一个4x4矩阵.

我已经看到OpenGL旋转矩阵是4x4,只是在第4行和第4列填充了0001.

如果CMAttitude的旋转矩阵与CATransform的矩阵相关,我就会徘徊?

我可以使用通过旋转矩阵获得的空间中的设备旋转来转换UIView CATransform3D吗?我的目的是让用户移动手机并将相同的变换应用到屏幕上的UIView.

额外问题:如果它们相关,我如何将CMAttitude的旋转矩阵转换为CATransform3D?

Vik*_*pov 4

陀螺仪仅用于确定设备在空间中的方向。有很多方法可以参数化方向本身(有关理论信息,请参阅有关SO(3)群的信息) - 四元数、欧拉角和 3x3 矩阵就是其中之一。

将 3x3 矩阵“嵌入”到 4x4 矩阵中并不是 GL 特有的技巧。它是平移组(与所有 3D 向量同构)和旋转组(上面提到的 SO(3))的“半直积” 。

要从 CMAttitude 获取 CATransform3D 矩阵,您必须假设对象的某个位置。如果它是零,那么就像你所说的那样用 0001 填充矩阵。

您可能会对这个问题感兴趣:Apple 陀螺仪示例代码