Ответ 1
Аффинные преобразования задаются матрицами 2x3. Мы выполняем аффинное преобразование M, беря наш двумерный вход (x y), подбирая его до 3D-вектора (x y 1), а затем умножая (слева) на M.
Итак, если у нас есть три точки (x1 y1) (x2 y2) (x3 y3), отображающие (u1 v1) (u2 v2) (u3 v3), то мы имеем
[x1 x2 x3] [u1 u2 u3]
M [y1 y2 y3] = [v1 v2 v3].
[ 1 1 1]
Вы можете получить M просто путем умножения на правую на обратную сторону
[x1 x2 x3]
[y1 y2 y3]
[ 1 1 1].
Матрица 2x3, умноженная справа на матрицу 3x3, дает нам 2x3, который мы хотим. (Вам действительно не нужен полный обратный, но если матрица обратная доступна, она проста в использовании.)
Легко адаптируется к другим измерениям. Если у вас более 3 баллов, вам может потребоваться наилучшее соответствие наименьших квадратов. Вам придется снова спросить об этом, но это немного сложнее.