First of all thanks for your help, Lily Lee.  AxisAngle is the solution to
rotating about an object's coordinate system rather than the absolute
coordinate system...

However, I am still confused about something.  Let's assume I carry out
rotations about the x axis first, then about the transformed y axis, and
finally about the transformed z axis.  From my computer graphics text, you
multiply the transformation matrix by your vector to get the transformed
vector.

For example, the matrix for rotation about the x axis is:

1       0            0            0
0       cos a    -sin a      0
0       sin a     cos a      0
0       0            0            1

If I multiply this by the unit vector along the y axis, [ 0 1 0 1] T, then I
get the vector [ 0 0 1 1 ] T, which is the unit vector along the z axis.
This conforms to the right handed coordinate system and makes sense.  What
doesn't make sense?

Let's say that I rotate my object around the absolute X axis by some
arbitrary angle.  I then should be able to rotate the unit vector for the Y
axis by the same angle (we'll call this rotated vector Y').  I can then use
AxisAngle to rotate about Y'.

However, the above doesn't work!  I have to multiply my Y unit vector by the
X rotation matrix (instead of the other way around) to get this to work!
Things get even crazier when I try to obtain Z'!

To get Z' I multiply the Z unit vector by the 3x3 rotation matrix of my Y
transform.  However, to get this to work, I have to negate the x component
of the vector!

Can anyone explain why this is the way it is done?

Thanks,
Evan Drumwright

===========================================================================
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