# 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

 metadata block see also: Correspondence about this page Book Shop - Further reading. Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them. Quaternions and Rotation Sequences. Specific to this page here:

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2023 Martin John Baker - All rights reserved - privacy policy.