View Full Version : quaternion

05-24-2013, 10:49 PM
Hi everyone, Plz tell me funda of quaternion how can we calculate from euler angle and please tell me how can I calculate q[w,x,y,z] factor.:D

Alfonse Reinheart
05-25-2013, 06:01 AM
You don't want to calculate quaternions from Euler angles. You want to stop using Euler angles at all. You don't want, at any point in your program, to think of an object's orientation as 3 angular rotations.

As for the why's and how's of this, I've covered that over here. (http://www.arcsynthesis.org/gltut/Positioning/Tutorial%2008.html)

05-27-2013, 12:01 AM
Thanks for link, "Any pure orientation change from one coordinate system to another can be represented by a rotation about some axis by some angle" thats fine now I can visualise with some other aspect, but

why theta/2
is there any derivation

Alfonse Reinheart
05-27-2013, 12:08 AM
why theta/2
is there any derivation

The Internet is where you are right now. If you want to know how a formula was derived, you could simply look it up. I'm sure the Wikipedia article on quaternions could explain it.

05-27-2013, 12:13 AM
I am unable to find out any content about half angle,please if you have any, mention it . thanks in advance.:doh:

Dan Bartlett
05-27-2013, 04:21 AM
http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation says that it is to enable the encoding of both count and counter-clockwise rotations.

As I see it, if you were to use:

q = cos (theta) + (Ux*i + Uy*j + Uz*k)*sin(theta)
Then since sin and cos repeat every 360 degrees, you couldn't tell the difference between rotating (X) degrees and (N*360+X) degrees. This would mean you could only encode rotations from -180 to +180 degrees (0-360 degrees if you are only rotating one way)


q = cos (theta/2) + (Ux*i + Uy*j + Uz*k)*sin(theta/2)
then cos & sin only repeat every 720 degrees, so you can represent -360 to 360 degree rotations. (or 0-720 degrees if only in one direction)