What do you expect to achieve by normalizing a matrix?
I know how to normalize vectors, but AFAIK there’s no such equivalent for matrices (they don’t have a ‘size’ that can be used to reduce its elements in such a way that this size becomes 1).
And ‘normalizing’ the individual rows or columns of a matrix results in another matrix with a not-so-obvious relation if any to the original matrix.
I’m trying to make my own function of gluProject.
In the Blue Book, there is a explanation in how to do that. I have extremely sure I did all the things were wrote there, but it didn’t work.
Then I think it is because I didn’t normalize my vectors (like you told me).
We discussed that in math. I had the same idea once, too, and your equation above would have simplified a prove incredibly.
But…I´m sorry, |mat| is not defined (if I remember it correctly, at least it does not work like that)
Have a nice day
Batti
edit: But I maybe wrong
[This message has been edited by Batti (edited 06-05-2002).]
Actually, there are definitions for several
different matrix norms.
A norm must only satisfy 3 properties:
|A| > 0
|kA| = |k| |A|
|A+B| <= |A|+|B|
What I imagine you are really wanting to do is reorthogonalize the column vectors of a transformation matrix( which has become “unnormalized” by repeated multiplication).
If this is what you mean, look up “Gram-Schmidt orthogonalization”.
There are several matrix norms, just like there are several for vectors. The simplest is the Frobenius norm which is just the sqrt of the sum of the squares for real-valued matrices. Some of the other norms are functions of the eigenvalues of the matrix. Haven’t seen one in terms of the determinant though.
I forget the name of this norm, but it is a pretty common one. I think it is the p-norm.
Only mathematicians care about such things. Vector norms are enough for GL.
Also, Fernando, the first norm is the vector norm. The second is normalizing from homogenous coordinates. Since the real world is only 3-d, only the first three matter, to some extent. However, if the fourth place is not 1 (can be made one by your second algorithm), the first three numbers are not correct.
[This message has been edited by nickels (edited 06-07-2002).]