矩阵元素可通过以下方式访问:
FMatrix::M[rowIndex][columnIndex]
乘法
因为
FMatrix
约定是使用行矩阵表示,所以矩阵相乘的顺序与传统数学方式相反:- 数学(列表示):
M3 * M2 * M1 * vec
首先应用 M1,最后应用 M3
- UE(行表示):
vec * M1 * M2 * M3
要应用 M1,首先需要反转乘法。
请注意,乘法运算符的实现没有什么特别之处:
void FMatrix::mult(int A[N][N], int B[N][N]) { int C[N][N]; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { int num = 0; for (int k = 0; k < N; k++) { num += A[i][k] * B[k][j]; } C[i][j] = num; } } }
UE是左手坐标系
旋转变换 逆时针
绕x轴—roll
绕y轴—picth
绕z轴—yaw