计算两个3D矩阵的方向之间的角度偏移

时间:2014-08-14 21:52:46

标签: math matrix 3d geometry

我想知道两个3D矩阵(4x4)的方向之间的角度差异。两个朝向相同方向的矩阵将为零,两个朝向相反方向的矩阵将为180°。通过'方向',我指的是由矩阵转换的对象将面向的方向。所以我只关心轮换,而不是翻译或缩放。

具体来说,我使用WebKitCSSMatrix的实例,将16个3D矩阵值引用为.m11.m44

1 个答案:

答案 0 :(得分:0)

在这种情况下只比较矩阵中的一个轴

  1. 从矩阵中提取方向向量

    • 它取决于您的网格模型
    • 它是对象前进的那个
    • 在我的模型中它通常是Z轴
    • 但我也看到其他人经常使用X轴
    • 看这里:matrix vectors extraction
    • 我不熟悉您的矩阵库
    • 但你的矩阵有可能被调换!!!
    • 所以如果它不起作用就应该提取转置的矢量......(行而不是列)
  2. 计算差异

    • 只需计算:angle = acos ( (V1.V2)/(|V1|.|V2|) )
    • 其中V1,V2是方向向量