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?
陀螺仪仅用于确定设备在空间中的方向。有很多方法可以参数化方向本身(有关理论信息,请参阅有关SO(3)群的信息) - 四元数、欧拉角和 3x3 矩阵就是其中之一。
将 3x3 矩阵“嵌入”到 4x4 矩阵中并不是 GL 特有的技巧。它是平移组(与所有 3D 向量同构)和旋转组(上面提到的 SO(3))的“半直积” 。
要从 CMAttitude 获取 CATransform3D 矩阵,您必须假设对象的某个位置。如果它是零,那么就像你所说的那样用 0001 填充矩阵。
您可能会对这个问题感兴趣:Apple 陀螺仪示例代码