1
我有兩個形狀,每個形狀定義爲單個SVG路徑。我想要找出形狀A是否是形狀B的仿射變換,並計算/找到仿射變換矩陣。 我目前的方法計算關閉曲線和曲線點之間的連續角度,以查找它們是否爲變形形狀。這適用於翻譯,縮放,旋轉操作。但對剪切形狀不起作用。查找兩個形狀之間的仿射變換矩陣(SVG路徑)
有沒有適當的數學方法?
我有兩個形狀,每個形狀定義爲單個SVG路徑。我想要找出形狀A是否是形狀B的仿射變換,並計算/找到仿射變換矩陣。 我目前的方法計算關閉曲線和曲線點之間的連續角度,以查找它們是否爲變形形狀。這適用於翻譯,縮放,旋轉操作。但對剪切形狀不起作用。查找兩個形狀之間的仿射變換矩陣(SVG路徑)
有沒有適當的數學方法?
你可以找到仿射矩陣非共線點的任何三重之間變換P1,P2,P3和他們的翻譯雙胞胎P1' ,P2' ,P3'
A * P = P'
|x1 x2 x3| |x1' x2' x3'|
A *|y1 y2 y3| = |y1' y2' y3'|
|1 1 1 | |1 1 1 |
來計算,它需要通過P矩陣
A的逆相乘兩個sudes * P * P -1 = P '* P -1
A * E = P' * P -1
A = P」 * P -1
然後檢查相同甲適用於點的其他的三聯體(用於隨機子集或所有點,如果可能的話)
有sophisticated methods來評估整個點雲的仿射變換,但它們更復雜。
我假設你首先通過拒絕基於不同的點數和點身份來排除不可能性? (on-off-on-on!=開關關) –
對不起,延遲發表評論。是的,這將是一個好主意。 –