Как рассчитать матрицу преобразования трехмерной системы координат?

Теперь у меня есть много групп трехмерных координат в двух разных системах координат, и я хочу рассчитать матрицу преобразования, используя эти координаты. Например: координаты точки A в этих двух системах координат равны (i, j, k) и (x, y, z) по отдельности. Так

(i,j,k,1)=(x,y,z,1)*M

M - это то, что я хочу, но матрица сингулярна, поэтому я не могу напрямую вычислить i, так как я могу это сделать?


person cljs0280    schedule 02.06.2014    source источник
comment
С вашими координатами, вы уверены, что они ТОЧНО совпадают, просто умноженные на M? Насколько велика вероятность ошибки? Сколько точек в одной партии: 1, 10, 100, 1000?   -  person Kromster    schedule 02.06.2014


Ответы (1)


Для начала лучше написать уравнение так:

(i,j,k,1) = M*(x,y,z,1)

Теперь для каждой пары точек в ваших системах координат у вас есть уравнение, подобное приведенному выше, и каждое уравнение может быть представлено системой уравнений с 4 уравнениями и 16 переменными, которые мы назовем m11, m12, m13, m14, m21, ..., м44. Мы хотим найти эти переменные для заданного набора точечных пар.

Итак, пока ваша пара точек меньше 4, у вас может быть более одного решения, и ровно для 4 пар точек вы получите ровно одно решение. Теперь, если будет больше 4 пар точек, у вас может вообще не быть решения для системы уравнений.

Итак, помимо мониторинга условий, о которых я упоминал выше, все, что вам нужно сделать, это решить систему линейных уравнений. Чтобы получить помощь по решению системы линейных уравнений, прочтите это:

http://en.wikipedia.org/wiki/System_of_linear_equations

person Sachamora    schedule 02.06.2014
comment
Мне, действительно, жаль. Английский не мой родной язык. Я исправил это, спасибо. - person Sachamora; 03.06.2014