Учитывая однородную матрицу 4x4, как я могу получить трехмерные мировые координаты? - PullRequest
4 голосов
/ 25 января 2011

Итак, у меня есть объект, который вращается, затем переводится и снова вращается. Я храню матрицу этих переводов в качестве члена объекта. Теперь, когда я прихожу к выбору объекта, мне нужно знать трехмерные мировые координаты этого объекта.

В настоящее время я могу получить положение объекта примерно так

coords[0] = finalMatrix[12];<p> coords[1] = finalMatrix[13];<p> coords[2] = finalMatrix[14];

Это дает мне правильное положение объектов, но я также хочу принять во внимание повороты.

Любая помощь была бы отличной ...

Ответы [ 3 ]

2 голосов
/ 25 января 2011

http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/index.htm - вот объяснение того, как работают матрицы 4x4.Первый минор 3х3 - это матрица вращения.Последний столбец, кроме последнего элемента, является вектором перевода.И элемент [4, 4] является масштабным коэффициентом.Подробнее об этом читайте по ссылке

2 голосов
/ 26 января 2011

Так что я идиот ... у меня все было правильно с самого начала.Все, что мне было нужно, это данные о местоположении в [12] [13] [14].У меня была пара глупых ошибок в моем коде, одна из которых не имела достаточного количества итераций на моем пересечении лучей ... Теперь все отсортировано, лол, я пинаю себя ... ха-ха, спасибо, ребята, в любом случае !!

2 голосов
/ 25 января 2011

Матрица представляет собой матрицу 4x4, но, поскольку вы только что получили одномерную матрицу, кажется, что элементы расположены следующим образом:

[0]  [4]  [8]   [12]
[1]  [5]  [9]   [13]
[2]  [6]  [10]  [14]
[3]  [7]  [11]  [15]

Поворотная часть - это верхняя левая матрица 3x3 см. Здесь , поэтому в вашем случае это будут элементы [0]-[2], [4]-[6] и [8]-[10]

...