Normalization of a 3x3 Matrix
I am implementing various matrix classes and vector classes, and In the process, have been looking at what others have done for the same classes.
I see several 3x3 and 4x4 matrix classes have a "normalize" function. I understand what normalization for a ector is, and I understand what the normal is of a plane or surface, but what is the normal of a point discribed in a 3x3 matrix, what is it used for, and how can I calculate it?
When you multiply matrices the finite precision of the data representation can cause round off errors. The rows and columns of a rotation matrix should be an orthonormal sets of vectors. If they are not then you need to reorthogonalize and normalize the rows or the columns. Doing one does the other. If you have a matrix with translation, rotation and scaling then you have to factor it first. If your scaling is suppose to be uniform then you may have to correct the scaling component as well, i.e. it may no longer be the same scaling factor on each axis. At least that would be my assumption on what someone might mean by normalizing a matrix

Keys to success: Ability, ambition and opportunity.
Thet probably meant orthogonalization, which is what the previous poster described. Look up ''Gram-Schmidt'' for more details.
GameDev Reader TODO List:1. Name my company.2. Buy domain name.3. Create web site.4. Name myself as CEO5. Create Game Engine.6. Design game.
Assuming a row major 3x3 matrix, where the first row is 3-vector ''X'', then ''Y'', then ''Z''.
X.Normalise();
Y.Normalise();
Z = X cross Y;
Y = Z cross X;
That should make an orthonormal 3x3 matrix.
X.Normalise();
Y.Normalise();
Z = X cross Y;
Y = Z cross X;
That should make an orthonormal 3x3 matrix.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement