多重剪切矩阵是旋转,不均匀比例和旋转的组合吗?

时间:2019-01-16 14:55:39

标签: matrix graphics linear-algebra transformation rotational-matrices

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

处理剪切是棘手的部分。单个剪切变换可以表示为旋转,不均匀比例和旋转的组合,如下所示: Shear Matrix as a combination of basic transformation?

但是,对于3D而言,可以一次在多个平面上进行剪切;例如XY,XZ和YZ。虽然我可以用rotation,scale,rotation表示每个旋转,但总共要进行6次旋转和3次缩放操作。我的直觉是,只需一次旋转,不均匀的缩放和旋转就可以一次处理所有剪切,但是所涉及的数学问题困扰着我。

当查看任意仿射矩阵时,我不确定剪切和旋转是什么构成的(我认为如何拆分它有无限解决方案?)因此我想解决“沿多个平面任意共享”的问题是与通常只求解仿射矩阵(不带翻译)相同。无论哪种方式,都可以对我有帮助。

1 个答案:

答案 0 :(得分:1)

一个(完整的)SVD使您靠近。这给出了一个3x3的矩阵A

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的第一行取反)