我真的不太了解C#中的方法Matrix.Multiply(Matrix m)。
假设我有2个矩阵。 1矩阵在世界空间中,1个矩阵在局部空间中,现在我想将世界空间转换为局部空间或从局部空间转换到世界空间,我应该用乘法方法做什么?
Matrix world = ....
Matrix local = ...
world.Multiply(local)
// It means world*local or local*world and it will transform world space to
// local or from local to world space?
提前感谢。
答案 0 :(得分:3)
如果要将一个矩阵转换为另一个矩阵,则不希望将矩阵相乘。您希望找到将乘以乘以从一个到另一个的矩阵。基本上,你想要解决这个等式:
W * X = L
W
是您的世界矩阵,L
是您的本地矩阵。您正在寻找矩阵X
。解决X
:
W * X * 1/L = I
其中I
是单位矩阵,1/L
是L
的倒数所以:
X = 1/W * L
请注意,矩阵乘法不可交换,因此W * L
通常与L * W
不同。