【问题标题】:Are CMAttitude and CATransform3D related by rotational matrices?旋转矩阵是否与 Attitude 和 CATransform3D 相关?
【发布时间】:2012-06-01 16:29:42
【问题描述】:

我正在查看核心运动类 CMAttitude,它可以将设备的方向表示为 3x3 旋转矩阵。同时我看了CATransform3D,它封装了视图的态度,以及缩放。 CATransform3D 是一个 4x4 矩阵。

我已经看到 OpenGL 旋转矩阵是 4x4 并且只是在第 4 行和第 4 列中填充了 0001。

CMAttitude 的旋转矩阵是否与 CATransform 的矩阵有关?

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

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

【问题讨论】:

    标签: iphone ios matrix core-motion catransform3d


    【解决方案1】:

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

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

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

    您可能会对这个问题感兴趣:Apple gyroscope sample code

    【讨论】:

    • 不客气 :) 我希望答案不是太理论化 :)
    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多