我在世界空间中有一个变换矩阵。我需要将它转换为本地(相机)空间。
我使用以下方法完成了(本地到世界)的反向:
Eigen::Matrix3f R0; //rotation matrix
Eigen::Vector3f T0; // xyz translation values
Eigen::Vector3f C0; //result
R0.transposeInPlace(); //invert rotation matrix
C0 = -R0 * T0; //return world-space coordinate
我可以简单地运行同样的东西来反转它吗?或者它是一个不同的等式?
谢谢。
答案 0 :(得分:2)
如果你想继续使用矩阵,一定要研究线性代数。
在你的情况下,如果你左右乘以两边的矩阵逆,你应该能够求解T0:
C0 = -R0 * T0
-R1 * C0 = -R1 * -R0 * T0
(R1
是R0
)的倒数
-R1 * C0 = T0
所以要从C0得到T0,你要否定并将C0左移乘R0的倒数,这就是你在调用R0.transposeInPlace();
之前开始的矩阵