开发者

How to convert a 3x3 rotation matrix into 4x4 matrix?

开发者 https://www.devze.com 2023-02-07 03:14 出处:网络
I\'m currently using a 3x3 rot开发者_开发百科ation matrix to work with 3D points. How does this matrix differ from a 4x4 Matrix?

I'm currently using a 3x3 rot开发者_开发百科ation matrix to work with 3D points.

How does this matrix differ from a 4x4 Matrix?

And how do I convert a 3x3 matrix into a 4x4?


A 4x4 matrix can be used to do both rotation and translation in a single matrix.

The tx, ty values down the right side of your matrix would be added to the x, y, z of the vertex you are transforming.

So to convert a 3x3 matrix to a 4x4, you simply copy in the values for the 3x3 upper left block, like so:

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

That 3x3 becomes this 4x4

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

Notice in the 4x4 the upper left block got straight copied, and 0's were entered for the other new, extra entries (indicating I don't want any translation to be added).


A 4x4 matrix will support all affine transforms, including rotation and translation.

See the answer to this question: Solution to skew bitmaps in flash

For the gory math, see: http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/index.htm


A 4x4 matrix allows affine transformations of 3-dimensional vectors.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号