POV-Ray : Newsgroups : povray.beta-test : VPerp_To_Vector() macro bug, also Axial_Scale_Trans() : Re: VPerp_To_Vector() macro bug, also Axial_Scale_Trans() Server Time
29 Jul 2024 12:19:52 EDT (-0400)
  Re: VPerp_To_Vector() macro bug, also Axial_Scale_Trans()  
From: Slime
Date: 7 May 2002 00:49:57
Message: <3cd75cf5$1@news.povray.org>
> > 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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.