多重剪切矩阵是旋转、非均匀尺度和旋转的组合



我正试图找出如何仅使用平移、旋转和非均匀缩放来获得任意仿射3D矩阵的等价物。

处理剪切是一个棘手的部分。单个剪切变换可以表示为旋转、非均匀尺度和旋转的组合,如下所述:剪切矩阵作为基本变换的组合?

然而,对于3D,可以同时在多个平面上进行剪切;例如XY、XZ和YZ。虽然我可以用旋转、缩放、旋转来表达每一个,但总共需要6次旋转和3次缩放操作。我有一种直觉,所有的剪切都可以同时处理,只需一次旋转、非均匀缩放和旋转,但所涉及的数学问题超出了我的想象。

当观察任意仿射矩阵时,我不确定什么构成剪切与旋转(我认为如何分割有无限的解?),所以我想解决"沿多个平面的任意共享"问题与一般仅求解仿射矩阵(无平移)是一样的。无论哪种方式,任何能帮助我的东西都会被感激。

一个(完整的)SVD可以让您接近。对于3x3矩阵,这给出了

A = U*S*V'

其中所有矩阵都是3x3,S是对角的,U和V是正交的。不幸的是,U和V可能不是旋转,也就是说,它们可能有行列式-1。

一种方法是计算U的行列式,如果是-1,则用代替

U~ = U * diag(-1,1,1) (ie negate the first col of U)

并用取代S

S~ = S*diag( -1, 1, 1) (ie negate the top left elt of S)

然后类似地,对于V(尽管现在,因为转置,你想否定V的第一行)

相关内容

  • 没有找到相关文章

最新更新