所以,我有一个 Direct2DMatrix3x2F
我用它来存储几何图形的变换。我希望这些转换是用户可编辑的,并且我不希望用户必须直接编辑矩阵。是否可以将 3x2 矩阵分解为缩放、旋转、倾斜和平移?
这是我为 Direct2D 变换矩阵找到的解决方案:
尺度 x =sqrt(M11 * M11 + M12 * M12)
尺度 y =sqrt(M21 * M21 + M22 * M22) * cos(shear)
旋转=atan2(M12, M11)
剪切力 (y) =atan2(M22, M21) - PI/2 - rotation
平移 x =M31
平移 y =M32
如果将这些值按顺序相乘scale(x, y) * skew(0, shear) * rotate(angle) * translate(x, y)
您将得到一个执行等效变换的矩阵。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)