# Maths - Rotations using quaternions - message from minorlogic

 By: minorlogic ( Michaele Norel ) RE: quternion from 2 vec   2003-08-27 12:23 Found in GDA mailing list archives, very simple trip. Here we get result, how create quaternion of the half rotation. We get that we can just add the 1 to w component. The same we can get if we will lineary lerp from identity quaternion ( w== 1) to given by half. 0.5*q + 0.5*q_ident -> scale it by 2 we get the same result without the complicated math. That is so simple.
 By: martinbaker ( Martin Baker ) RE: quternion from 2 vec   2003-08-27 16:16 Hi minorlogic, Can I just check what you are saying? As an example assume I am rotating 90' about the z-axis. The would be represented by quat = k Half that angle would be given by quat = cos(45') + k sin(45') = 0.707 + k 0.707 Are you saying that I can derive this from the first equation by adding 1 to give 1 + k and then normalising? That's very interesting, do you know why this is so? Do you have a derivation? Can you think of a way to say, divide the angle into 3 parts? Martin
 By: minorlogic ( Michaele Norel ) RE: quternion from 2 vec   2003-08-28 08:20 From dot and cross product we can get the quaternion of DOUBLE angle rotation q( x*sin a, y*sin a, z*sin a, cos a); but we need the quat of angle rotation q( x*sin a/2, y*sin a/2, z*sin a/2, cos a/2); So we need to get quaternion from double angle -> to angle. This quaternion "lay between" identity quaternion q(0,0,0,1 ) and given double angle quaternion. We can just lerp this two quaternions. So as we find bisector of two unit vectors just adding tham, we add to double angle quaternion ( must be same magnitude ) identity quaternion and normalize it. lets play with your example: quaternion double_a_q( 0*sin(90), 0*sin(90), 1*sin(90), cos(90) ) double_a_q( 0, 0, 1, 0 ) identity_q( 0,0,0,1); Add them : result_q( 0,0,1,1); normalize it : mag = sqrt(0*0 + 0*0+ 1*1 +1*1) = sqrt(2) result_q( 0,0,1/sqrt(2),1/sqrt(2)); result_q( 0,0,0.707,0.707); And to derive this we don't need trigonometry.
 By: martinbaker ( Martin Baker ) RE: quternion from 2 vec   2003-08-28 17:49 Yes, I made a silly mistake in not dividing the angle by 2 when calculating the quaternion, thank you for correcting me. I think I understand now, I have written this down at the following webpage: https://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/transforms/halfAngle.htm Is this alright? Thanks, Martin