Vik*_*tor 1 math geometry affinetransform
我有两个正方形,S1 =(x1,y1,x2,y2)和S2 =(a1,b1,a2,b2)
我正在寻找A*S1 = S2的A变换矩阵
据我所知,A是一个仿射3x3矩阵,所以我有9个未知值.
我该如何计算这些值?
谢谢,最好,Viktor
这里真的只有四个未知值.旋转角度,比例因子和x和y平移.在你的三乘三矩阵中,底行始终0,0,1会将你减少到六个未知数.右栏将Tx,Ty,1是您的翻译(以及我们已经知道的1).
左边两个"矩阵"将是你的旋转和缩放.这将(在我的头顶)是这样的:
ACos(B), -Asin(B)
ASin(B), aCos(B)
Run Code Online (Sandbox Code Playgroud)
所以总的来说:
ACos(B), -Asin(B), Tx
ASin(B), ACos(B), Ty
0 , 0 , 1
Run Code Online (Sandbox Code Playgroud)
您可以使用每个坐标末尾的1来扩展坐标矩阵,得到2x3矩阵,然后它们相乘以得到四个变量需要求解的四个方程式.这留给读者练习.