c# - C# 中的矩阵乘法方法

标签 c# matrix

我不太理解 C# 中的 Matrix.Multiply(Matrix m) 方法。

假设我有 2 个矩阵。 1个矩阵在世界空间,1个矩阵在局部空间,现在我想将世界空间变换到局部空间或者从局部空间变换到世界空间,我应该用Multiply方法做什么?

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?

提前致谢。

最佳答案

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

W * X = L

其中 W 是您的世界矩阵,L 是您的本地矩阵。您正在寻找矩阵X。求解X:

W * X * 1/L = I 

其中 I 是单位矩阵,1/LL 的逆矩阵,因此:

X = 1/W * L

请注意,矩阵乘法不可交换,因此W * LL * W 不同。

关于c# - C# 中的矩阵乘法方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2051403/

相关文章:

c# - 如何在 Web 测试插件中调用 MoveDataTableCursor 来浏览表中有限的行集?

c# - Windows Phone 8.1 中的设备状态

矩阵和数据框之间的逐行差异

c++ - 运算符 [] 错误的矩阵类代理

javascript - 沿对 Angular 线遍历二维数组(矩阵)

c# - Windows 服务不执行 OnStart()

c# - 迭代直到达到 int.MaxValue

c# - 从 C# 配置 *.scr 文件

algorithm - 对于一个矩阵,存在多少个连续的子矩阵?

python - 3D 矩阵的 Numpy 排列