旋转矩阵的乘法

这个高数里学过,就是左行分别乘右列,然后相加。

void mtxMultMatrixf(float M[3][3], float T[3][3])
{
    float M0[3][3];
    
    for (int j = 0; j < 3; j++){
        for (int i = 0; i < 3; i++){
            M0[j][i] = T[j][i];
        }
    }
    
    M[ 0][0] = M0[ 0][0] * T[ 0][0] + M0[0][1] * T[ 1][0] + M0[0][2] * T[ 2][0] ;
    M[ 1][0] = M0[ 1][0] * T[ 0][0] + M0[1][1] * T[ 1][0] + M0[1][2] * T[ 2][0] ;
    M[ 2][0] = M0[ 2][0] * T[ 0][0] + M0[2][1] * T[ 1][0] + M0[2][2] * T[ 2][0] ;
    
    
    M[ 0][1] = M0[ 0][0] * T[ 0][1] + M0[0][1] * T[ 1][1] + M0[0][2] * T[ 2][1] ;
    M[ 1][1] = M0[ 1][0] * T[ 0][1] + M0[1][1] * T[ 1][1] + M0[1][2] * T[ 2][1] ;
    M[ 2][1] = M0[ 2][0] * T[ 0][1] + M0[2][1] * T[ 1][1] + M0[2][2] * T[ 2][1] ;
    
    
    M[ 0][2] = M0[ 0][0] * T[ 0][2] + M0[0][1] * T[ 1][2] + M0[0][2] * T[ 2][2] ;
    M[ 1][2] = M0[ 1][0] * T[ 0][2] + M0[1][1] * T[ 1][2] + M0[1][2] * T[ 2][2] ;
    M[ 2][2] = M0[ 2][0] * T[ 0][2] + M0[2][1] * T[ 1][2] + M0[2][2] * T[ 2][2] ;
    
}

猜你喜欢

转载自blog.csdn.net/jjgg171314/article/details/80048705