Posted 06 October 2001 - 11:30 AM
I believe gimbal lock occurs when there is an ambigious orientation. I think this is what quaternions try to solve. My favorite representation is the orthogonal basis vector matrix, which is just the "right", "up", and "direction" vectors in the first three rows of the matrix, and finally the "position" vector is the forth row of the matrix. This representation can also fail if you try to compose the "up" vector from the "direction". This is a common mistake when using this representation. The solution is to never compose the "up" vector, but start with an initial direction and up that''s orthogonal, and always rotate _both_ vectors by the same rotation matrix, this insures the objects orientation is preseved.