【发布时间】:2011-06-17 12:44:06
【问题描述】:
我目前正在使用 3x3 旋转矩阵来处理 3D 点。
此矩阵与 4x4 矩阵有何不同?
如何将 3x3 矩阵转换为 4x4?
【问题讨论】:
我目前正在使用 3x3 旋转矩阵来处理 3D 点。
此矩阵与 4x4 矩阵有何不同?
如何将 3x3 矩阵转换为 4x4?
【问题讨论】:
4x4 矩阵可用于在单个矩阵中进行旋转和平移。
矩阵右侧下方的tx、ty 值将添加到您正在变换的顶点的 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(表示我不想添加任何翻译)。
【讨论】:
1 用于 tw,将 0 用于底行的其余部分,并将 0 用于 tx、ty、tz 中的每一个。
4x4 矩阵将支持所有仿射变换,包括旋转和平移。
查看这个问题的答案:Solution to skew bitmaps in flash
有关血腥数学,请参阅:http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/index.htm
【讨论】:
4x4 矩阵允许affine transformations 的 3 维向量。
【讨论】: