"Dipl. Ing. Paul Szawlowski" wrote:

> Can someone (from Sun ? ) make assure that continous matrix
> multiplication over a long period of time is no problem in Java3d ? Then
> I would switch to this.

I don't think that sun people can do miracles. If you use floating
point, you are always risking small corruption. Just do

double x = Math.abs(1.2 - 1.0 - 0.2);

(of course supposing it is evaluated at runtime, not at compile time).
What is value of x ?

With matrices this problem is even larger, because of number of
computation involved there. Basically if you do a lot of non-trivial
math on matrix (and rotations are non-trivial in this meaning), you are
almost guaranteed to go astray at some point. There is no way sun could
prevent this, unless they will start to 'correct' matrices for you of
they will get close to unstable ones. But 'correcting' values for
programmer is not a good idea - it would be surprising to get up
flipped, just because algo determined it would be too unstable to keep
it old way.

In my code I use separate values for every component - position, zoom,
rotation, tilt. I apply all changes on this values and only the
construct Transform3D applying all these in correct order. Of course it
is not always easy - if you want full 6DOF relative to view, not to
world (in my case I work relative to world at all time) it could be
harder. I would suggest keeping position, scale and orientation
separate. Scale probably would not change in your case, so only problem
would be position (quite easy I suppose) and orientation. For
orientation use Quat4d(f). It requires some tricks to handle properly,
but won't degenerate with time and allows nice interpolation of
different orientations.


Artur

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to