这段代码中可以进行什么样的矩阵变换?

时间:2017-08-19 09:51:30

标签: math matrix

此代码中可以进行哪种矩阵转换?

mat[3][0] += a0.y * mat[0][0] + a0.z * mat[1][0] + a0.x * mat[2][0];
mat[3][1] += a0.y * mat[0][1] + a0.z * mat[1][1] + a0.x * mat[2][1];
mat[3][2] += a0.y * mat[0][2] + a0.z * mat[1][2] + a0.x * mat[2][2];

1 个答案:

答案 0 :(得分:0)

如果mat是以齐次坐标表示的仿射变换,则这是矢量t的后翻译,其中t = (a0.y, a0.z, a0.x)

/ m00  m01  m02  m03 \     / 1  0  0  a0y \
| m10  m11  m12  m13 |  *  | 0  1  0  a0z |
| m20  m21  m22  m23 |     | 0  0  1  a0x |
\  0    0    0    1  /     \ 0  0  0   1  /

此表达式的结果正是您在代码中的结果。 (注意:上述表达式中的索引将反转为您的,以便在数学中符合传统表示法。)