Jump to content
  • Advertisement
Sign in to follow this  
mathematical

Quaternion and Angle Axis Matrix

This topic is 505 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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. 

Share this post


Link to post
Share on other sites
Advertisement
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!