Jump to content

  • Log In with Google      Sign In   
  • Create Account

Extracting basis vectors from a quaternion


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
7 replies to this topic

#1 maxest   Members   -  Reputation: 294

Like
0Likes
Like

Posted 02 May 2014 - 10:43 AM

A 3x3 matrix describes orientation and/or rotation with three (basis) vectors placed in the matrix vectors (or columns). Such a matrix can be converted to a quaternion and vice-versa. I'm wondering how to extract the three basis vectors from the quaternio, without converting the quaternion to a matrix. Is that even possible?



Sponsor:

#2 Brother Bob   Moderators   -  Reputation: 8605

Like
5Likes
Like

Posted 02 May 2014 - 10:55 AM

Since the matrix is the set of basis vectors you're looking for, converting the quaternion to a matrix or to basis vectors would have to be equivalent. If you get the matrix, you automatically have the basis vectors; if you have the basis vectors, you automatically have the matrix. A possible exception, of course, would be if you only need one or two of the basis vectors, but that's equivalent to a partial matrix conversion.



#3 maxest   Members   -  Reputation: 294

Like
0Likes
Like

Posted 02 May 2014 - 11:01 AM

Yes but is there any other way? I mean, to sort of "read" the basis vectors straight from the quaternion? Or to put it this way. From a quaternion we can easily read the axis of rotation and the angle. I think that axis-angle and quaternion are equivalent beings. If so, then that means that from axis-angle we could also somewhat "read" the basis vectors. But I don't see how.



#4 Brother Bob   Moderators   -  Reputation: 8605

Like
1Likes
Like

Posted 02 May 2014 - 11:20 AM

But my point is, you want the basis vectors, and the matrix consists exclusively of the basis vectors. No matter how you read the basis vectors from the quaternion, a matrix can always be created exactly the same way and you get the matrix for free when you have the basis vectors. There's no way to read the basis vectors that doesn't give you the matrix, because the collection of basis vectors is the matrix.



#5 Álvaro   Crossbones+   -  Reputation: 13912

Like
1Likes
Like

Posted 02 May 2014 - 12:10 PM

Of course Brother Bob is right, but perhaps this explanation might help you. A rotation is a mapping from R^3 to R^3. When a matrix is used to represent a rotation, its columns are the images of (1,0,0), (0,1,0) and (0,0,1). If you have the rotation represented as a quaternion, you can compute those columns the same way you would rotate any other vector (something like q * i * conj(q), q * j * conj(q) and q * k * conj(q)).



#6 maxest   Members   -  Reputation: 294

Like
0Likes
Like

Posted 02 May 2014 - 03:02 PM

Okay... I think I get your point but still something bugs me.

Let's put it this way. We have axis-angle representation and want to get the basis-vectors (or matrix if you like). One of the basis vectors is the axis of rotation. How do I compute the other two vectors? The only information I have left is that these two vectors lie on the plane perpendicular to the axis of rotation. And of course I have the angle, which definitely is needed to get the second vector but I'm not sure how.



#7 Brother Bob   Moderators   -  Reputation: 8605

Like
2Likes
Like

Posted 02 May 2014 - 03:21 PM

The axis of rotation is not a basis vector. This is only true if you are rotating about one of the principal axes, but not in general.



#8 NickW   Members   -  Reputation: 313

Like
0Likes
Like

Posted 02 May 2014 - 03:57 PM

Just take each of the identity basis vectors (1, 0, 0), (0, 1, 0) and (0, 0, 1) and rotate them with the quaternion.  This will give you a new set of basis vectors that should correspond to the columns in a rotation matrix.


Edited by NickW, 02 May 2014 - 03:58 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS