Как преобразовать матрицу вращения 3х3 в матрицу 4х4? - PullRequest
9 голосов
/ 29 января 2011

В настоящее время я использую матрицу вращения 3x3 для работы с трехмерными точками.

Чем эта матрица отличается от матрицы 4x4?

А как мне преобразовать матрицу 3х3 в 4х4?

Ответы [ 3 ]

18 голосов
/ 29 января 2011

Матрица 4x4 может использоваться как для вращения, так и для перемещения в одной матрице.

Значения tx, ty вниз по правой стороне вашей матрицы будут добавлены к x, y, z вершины, которую вы преобразуете.

Таким образом, чтобы преобразовать матрицу 3x3 в 4x4, просто скопируйте значения для верхнего левого блока 3x3, например:

[ a11  a12  a13 ]
[ a21  a22  a23 ]
[ a31  a32  a33 ]

Это 3x3 становится этим 4x4

[ a11  a12  a13  0 ]
[ a21  a22  a23  0 ]
[ a31  a32  a33  0 ]
[   0    0    0  1 ]

Обратите внимание, что в 4x4 верхний левый блок был скопирован прямо, и 0 были введены для других новых, дополнительных записей (указывая, что я не хочу, чтобы какой-либо перевод был добавлен).

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

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

См. Ответ на этот вопрос: Решение для перекоса растровых изображений во флэш-памяти

Гори математику см .: http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/index.htm

1 голос
/ 29 января 2011

Матрица 4x4 позволяет аффинных преобразований трехмерных векторов.

...