Advertisement

Quaternion and Angle Axis Matrix

Started by May 23, 2017 10:57 PM
3 comments, last by alvaro 7 years, 8 months ago

Is there a conceptual difference between a quaternion and a matrix representing an Angle Axis rotaiton? I realize you can slerp quaternions and they are smaller than the respective angle axis matrices, but is there a concepual difference? What i mean by that is both forms represent a rotation about some arbitrary axis.

First of all, I don't think "Angle Axis Matrix" means anything. You can express a rotation using an angle and an axis, but that's an alternative to using matrices, not the same thing.

The group SO(3) of spatial rotations has a representation as orthogonal 3x3 matrices with determinant 1. There is a homomorphism from unit-length quaternions to SO(3) which is not an isomorphism because q and -q map to the same rotation.

I am not sure if that answers your question.
Advertisement

By "Angle Axis Matrix" i meant this: http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToMatrix/

There is a homomorphism from unit-length quaternions to SO(3) which is not an isomorphism because q and -q map to the same rotation.

That addresses my question. You used some big words i had to google, but basically this is what i took away:

You can represent a quaternion as a 3x3 matrix, but it's an alternate representation, not the same thing.

is there a concepual difference?
For practical purposes, no. For all practical means, you can just think of it as the same thing with fewer numbers and fewer rounding errors and with nicer interpolation.

However, in reality there is a big difference, but it is unlikely that you need to know or want to know. Or, that you will even fully understand it, for that matter (I only understand it on a very rough scale, too). Rotation by an appropriate 3x3 matrix (with the rotate-around-axis formula) is, well, a rotation in 3D around an axis.

On the other hand side, rotation by a quaternion is something that looks like a 3D rotation but really is a pair of half-rotations in 4D space (I believe the correct word is "isoclinic"). That's why you have to do q*p*q', not just q*p, and the reason why you use only half the angle.

Left-multiplication followed by right-multiplication with the inverse does two half-rotates where the 3D part adds up but the rest has opposite sign and therefore sums up to zero, finally resulting in what looks like a pure 3D rotation. There was a kinda understandable presentation about how it works on GDC some 4-5 years ago (you will probably find it on Google if you're interested).

q and -q map to the same rotation
To be 100% correct, I think it should be "orientation", not "rotation". q and -q both perform a rotation that finally leaves the object in the same orientation, but they rotate the opposite ways around (one takes the "short" way, the other one the "long" way). That doesn't really matter... until you start to interpolate.

q and -q map to the same rotation

To be 100% correct, I think it should be "orientation", not "rotation". q and -q both perform a rotation that finally leaves the object in the same orientation, but they rotate the opposite ways around (one takes the "short" way, the other one the "long" way). That doesn't really matter... until you start to interpolate.


No, sorry; you are muddling things. The word "rotation" doesn't mean a continuous process that ends up leaving an object in some orientation: It means the mapping from the initial position to the final position in one go. What I said is perfectly correct.

This topic is closed to new replies.

Advertisement