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".