Rotating a 3D vector v around another pivot vector p is very easy: first, take the projection pr(v) and antiprojections apr(v) of v into p. The rotation will only affect the antiprojection part of v of course. We construct a perpendicular vector to v and p by the regular cross product operation (note that we can define what “cross product” means because we are in 3D now). And so we can perform a regular 2D rotation in the plane defined by this new vector and the antiprojection of v. This leads to the commonly used formula for the rotation r of v around p:
It’s probably easier to see this by using the Phase and Quadrature formulations of the projection and antiprojection operations, as I defined in previous posts. Let P be again the projection or Phase matrix, Q = I – P the antiprojection or Quadrature matrix, and let introduce a new matrix R which performs the cross product. Then, if the pivot p=(a,b,c), we have
which is much more clear, with the matrices
Now, we noted long ago that we can perform division of two vectors and that the result is in fact a complex number, with the real part telling us about the proportion of lengths in the parallel direction (projection or phase) and the imaginary part telling us about the perpendicular proportion of the lengths (antiprojection or quadrature). The modulo of this complex scalar is the proportion of the absolute lengths, and the argument is the angle between both vectors.
When rotating v into r by the angle theta, we have performed in fact another rotation in the plane perpendicular to p. In fact we have rotated the antiprojection of v, , into the antiprojection of r, , so we know their division will be exactly a complex number of modulo one and argument equal to the rotation angle. Therefore,
by combining this expression with
we can deduce that
which brings us closer to understand what this famous “imaginary part” j means. Unfortunately I don’t know how to go much further at this point, because neither P, Q nor R are invertible, so I can’t isolate j.
Looking to the above, it seems what j is doing is to apply a 90 degrees rotation over the pivot p. Not really a surprise, tho