提取旋转矩阵

非常简单.因为一个旋转矩阵不管如何旋转其x   y   z旋转分量的模总是1
那么只要求旋转分量的模
如果模不唯一,   那么那个摸的值就是相应scale向量分量的值.
VECTOR3   scale;
MATRIX33   mat;(3x3矩阵,   是4x4矩阵旋转部分)
假设行向量格式
scale.x   =   VECTOR3(mat(0,0)   ,   mat(1,0),   mat(2,0)).Length();
scale.y   =   VECTOR3(mat(0,1)   ,   mat(1,1),   mat(2,1)).Length();
scale.z   =   VECTOR3(mat(0,2)   ,   mat(1,2),   mat(2,2)).Length();
如果是列向量,   就将mat转置.
如果要求旋转,   那么只要求mat   乘以scale矩阵的逆

旋转矩阵正交单位化

原文地址:https://www.cnblogs.com/lizhengjin/p/1829296.html