Матрица преобразования T1, которая принимает единичные векторы {1, 0, 0}, {0, 1, 0} и {0, 0, 1} в {x1, y1, z1}, {x2, y2, z2}, {x3, y3, z3} просто
| x1 x2 x3 |
T1 = | y1 y2 y3 |
| z1 z2 z3 |
И аналогично преобразование T2, которое переводит эти 3 единичных вектора во второй набор точек, равно
| xx1 xx2 xx3 |
T2 = | yy1 yy1 yy3 |
| zz1 zz2 zz3 |
Следовательно, матрица, которая переводит первые три точки во вторые три точки, определяется как T2 * T1 -1 . Если T1 неособо, то это преобразование определяется однозначно, поэтому у него нет степеней свободы. Если T1 - особая матрица, то не может быть решений или может быть бесконечно много решений.
Когда вы говорите, что хотите получить 7 степеней свободы, это в некоторой степени является неправильным использованием терминологии. В общем случае эта матрица состоит из 3 степеней свободы вращения, 3 степеней масштабирования и 3 степеней сдвига, что в сумме составляет 9. Вы можете определить эти параметры, выполнив QR-факторизацию . Матрица Q дает вам параметры вращения, а матрица R - параметры масштабирования (по диагонали) и параметры сдвига (выше диагонали).