【问题标题】:How to convert a 3x3 rotation matrix into 4x4 matrix?如何将 3x3 旋转矩阵转换为 4x4 矩阵?
【发布时间】:2011-06-17 12:44:06
【问题描述】:

我目前正在使用 3x3 旋转矩阵来处理 3D 点。

此矩阵与 4x4 矩阵有何不同?

如何将 3x3 矩阵转换为 4x4?

【问题讨论】:

    标签: math 3d matrix rotation


    【解决方案1】:

    4x4 矩阵可用于在单个矩阵中进行旋转和平移。

    矩阵右侧下方的txty 值将添加到您正在变换的顶点的 x、y、z 上。

    所以要将 3x3 矩阵转换为 4x4,您只需复制左上角 3x3 块的值,如下所示:

    [ a11  a12  a13 ]
    [ a21  a22  a23 ]
    [ a31  a32  a33 ]
    

    3x3 变成了 4x4

    [ a11  a12  a13  0 ]
    [ a21  a22  a23  0 ]
    [ a31  a32  a33  0 ]
    [   0    0    0  1 ]
    

    请注意,在 4x4 中,左上角的块被直接复制,并且为其他新的额外条目输入了 0(表示我不想添加任何翻译)。

    【讨论】:

    • 知道如何将计算出的 3x3 矩阵转换为 4x4 吗?
    • 只需将左上角的 3x3 块直接复制到 4x4 的相同位置即可。在您的新 4x4 中,参考上图,确保将 1 用于 tw,将 0 用于底行的其余部分,并将 0 用于 tx、ty、tz 中的每一个。
    【解决方案2】:

    4x4 矩阵将支持所有仿射变换,包括旋转和平移。

    查看这个问题的答案:Solution to skew bitmaps in flash

    有关血腥数学,请参阅:http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/index.htm

    【讨论】:

      【解决方案3】:

      4x4 矩阵允许affine transformations 的 3 维向量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-24
        • 1970-01-01
        • 1970-01-01
        • 2011-04-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多