2010-01-12 126 views
2

我真的不明白在C#中的方法Matrix.Multiply(矩阵m)。C#中的矩阵乘法方法

让我说我有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? 

提前致谢。

回答

3

如果要将一个矩阵转换为另一个矩阵,则不需要乘以矩阵。你想找到你需要的矩阵乘以从一个到另一个。从本质上讲,你要解决的方程式:

W * X = L 

哪里W是你的世界矩阵和L是当地的矩阵。您正在寻找矩阵X。求解X

W * X * 1/L = I 

哪里I为单位矩阵和1/LL逆所以:

X = 1/W * L 

需要注意的是矩阵乘法是可交换的,所以W * L是不一样的,一般来说,如L * W

+0

+1特别是指出矩阵乘法不可交换 – zebrabox 2010-01-17 14:28:10