|
![](/i/fill.gif) |
> > However, when V has values such as <1, 1, -1> (and
> > all proportional vectors such as <2, 2, -2>, <-1, -1, 1>
> > etc - what matters is the direction) the two rotations
> > performed by vrotate() bring the vector in a round trip
> > right where it started
>
> Yes, this has been noticed and the new version will use a different
> approach which should work for all input vectors with no exceptions
> (well, except <0,0,0>).
Heeey! My multivariable calculus and matrix algebra class comes to use!
Apparently <1,1,-1> is an eigenvector of the transformation matrix defined
by the rotation, since Ax = lx (where A is the transformatoin matrix and l
is some constant). So, the question is, is there such thing as a three by
three matrix with no eigenvalues?
I vaguely remember prooving that there isn't such a thing with a 2 by 2
matrix... but I may be wrong... (yup, i just proved myself wrong, it's
entirely possible by a simple rotation.)
OK, so, if it's possible in 2D space, is it possible in 3D space? I'm
willing to bet it will be...
Well, let's see... by setting det(A-l) = 0, and trying to find an
unsolveable case, we get a cubic polynomial... but if we make sure the main
diagonal of the matrix is all zero (to simplify things), then we'll get
-l^3
+ l * (A(1,3)*A(3,1) + A(1,2)*A(2,1) + A(2,3)*A(3,2))
+ A(1,2)*A(2,3)*A(3,1) + A(1,3)*A(2,1)*A(3,2)
= 0
But... wait... there's a cubic term in there without a coefficient... so
this can always have a solution... shoot. I'll have to *not* restrict myself
to a main diagonal of all zeros. Rrrrr...
OK, solved it, but I'm not going to write it out here for time's sake.
Unfortunately, this *also* has a cubic term without a coefficient that I
have any control over.
I guess it's not possible. Not with a single transformation matrix. An if
statement will be necessary.
Someone who knows about this stuff, tell me if I'm right, please =)
- Slime
[ http://www.slimeland.com/ ]
[ http://www.slimeland.com/images/ ]
Post a reply to this message
|
![](/i/fill.gif) |