此代码中可以进行哪种矩阵转换?
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];
答案 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 /
此表达式的结果正是您在代码中的结果。 (注意:上述表达式中的索引将反转为您的,以便在数学中符合传统表示法。)