The question: Is the multiplication result of two unit-length quaternions "perpendicular" to both operands? "Perpendicular" means that dot product between either operand and multiplication result will be zero (as with vector3 cross-product). Operands (say q1 and q2) are not equal to each other.

Reason for asking: I'm trying to understand quaternion rotations from purely geometric point of view (even if it is 4d). For example, 3x3 affine transform matrix in 3d space can be represented as a new coordinate system into which a point should be placed, and each row(or column - depending on notation) of such matrix will represent a vector of a coordinate axis of the "new" coordinate system. So to transform a point with matrix, you simply take every vector that represents axis of a "new" coordinate system, scale it using numeric value of corresponding x/y/z of the point to transform, and add them all together to get new point. Such representation is very easy to understand. I'm looking for similar explanation of quaternions, and If I get confirmation that result of quaternion multiplication is "perpendicular" to both operands that would be at least something to get started.

Regards, SigTerm.

  • 3
    $\begingroup$ 1 times 1 =1, not orthogonal to itself. I think you may be looking looking for such orthogonality for "purely imaginary" quaternions, in which case multiplication is the cross product. $\endgroup$
    – Max
    Commented Mar 29, 2011 at 23:04
  • $\begingroup$ @Max I'm looking for analogies between 4d quaternion multiplication and 3d space's vector cross product. In 3d cross product between v and v or v and -v also won't give you perpendicular vector. Purely imaginary quaternions is not what I'm looking for. $\endgroup$
    – SigTerm
    Commented Mar 29, 2011 at 23:09
  • $\begingroup$ @Max: Multiplication of purely imaginary quaternions is not the cross product, as $i\times i = -1$ would mean that the cross product of two vectors is not a vector. See my answer for the definition. $\endgroup$ Commented Mar 29, 2011 at 23:19
  • $\begingroup$ @Alex: Ok, more precise wording: the imaginary part of the product of two imaginary quaternions is their cross product. In your example the cross product is 0. The real part of the product is minus the dot product. $\endgroup$
    – Max
    Commented Mar 30, 2011 at 9:21
  • $\begingroup$ @SigTerm: The cross product between v and v will give you zero, which is orthogonal to everything. $\endgroup$
    – Max
    Commented Mar 30, 2011 at 9:24

3 Answers 3


let $x=ai+bj+ck, y=di+ej+fk$ (pure quaternions). then $xy=-(ad+be+cf)+(bf-ce)i+(af-cd)j+(ae-bd)k$. if $u=(a,b,c), v=(d,e,f)$ then the real part of $xy$ is $-u\cdot v$ and the "imaginary" part of $xy$ is $u\times v$.



Also, keep in mind that there are several different naming conventions in use for quaternions and that they are often used to represent motions in $\mathbb{R}^3$, not $\mathbb{R}^4$. By "unit length quaternions" you may mean quaternions of the form $a_0 + a_1i +a_2j + a_3k$ such that $\sum_ia_i^2 = 1$. However, quaternions are often broken up into a "scalar part", $a_0$, and a "vector part", $a_1i + a_2j + a_3k$, and used in this way to model three dimensional space. With this convention, a "unit vector quaternion" is one of the form $a_1i + a_2j + a_3k$ such that $a_1^2 + a_2^2 + a_3^2 = 1$.

The cross product in $\mathbb{R}^3$ can however be defined in terms of quaternions. Given two quaternions $a$ and $b$, their cross product is $.5(ab - b^*a^*)$, where $^*$ denotes conjugation.


"I'm trying to understand quaternion rotations from purely geometric point of view (even if it is 4d)."

Arbitrarily pick a quaternion A as the operator, and the other B as the data.

The operator A does two separate complex rotations. Take the vector part of A. That is the axis for one complex rotation. It rotates B around that axis.

At the same time, B has a separate plane, defined by A's vector and the scalar. A also rotates B around that axis, by the same amount.

A's scalar (divided by A's euclidean magnitude) is the cosine of the angle for both rotations.

If you apply A on the right instead of on the left, BA instead of AB, everything is the same except one term, and the result is that the complex rotation around the vector part of A goes in the opposite direction.

You don't get gymbal lock because you do both rotations at once.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .