Previously, I alluded to the fact
that the multiplication of two rotors looks like the Hamilton
product,
except the signs of the last two coefficients for each basis is flipped.
Using the same coefficients as the Wikipedia entry, if we have two quaternions:
I’ve highlighted the differences in red. This difference is only because of my
choice of convention for the bivectors. Recall that we have the fundamental
bivectors, yz, zx, and xy. Also,
recall that I chose the middle basis, representing the y-plane, as
z^ first, then x^. This has the effect of ordering the bases
in a cycle.
It additionally impacts the wedge (or cross) product’s direction, enforcing that
the “front” of the plane points towards the remaining axis (in 3D). In other
words, if you conventionally have a left-handed coordinated system then all
bivectors follow the left-hand rule. Recall that these bivectors are
anti-commutative, so the order does matter! Let’s derive the rotor
multiplication if we just defined the bases in lexicographical order. This
means we have the bivectors, yz,
xz, and xy.
For this derivation, I’ll use the same coefficients as the Wikipedia entry, but
with the bivectors above, so we have:
a1+b1yz+c1xz+d1xya2+b2yz+c2xz+d2xy
Just a refresher on some results obtained from the previous post on Geometric
Algebra, for any two unit-length vectors, a^ and b^ such that
a^=b^, we have:
aaabab2abba=1=−ba=abab=−abba=−a^a^=−1=a^a^=1(1)(2)(from 2)(from 1)(3, from 1)(from 1)(4, from 1)
This matches the Hamilton product! I’d argue that the non-lexicographic bivector
approach, which differs from quaternions, is more grounded in the geometric
interpretation. As such, I’ll continue to use zx over
xz (or k, or e31, depending on your
preferred representation for the bases).
Furthermore, this explains why the identity,
i2=j2=k2=ijk=−1
differs from the equivalent for bivectors, which is true for the basis (and, in
fact, all unit-sized vectors which are not the same vector):
yz2=zx2=xy2=−1
But, the product of all of them is just the unit:
yzzxxy=y^(1)(1)y^=yy=1
If we use the swapped definition for the y-plane (xz), we’d get the result as in
quaternions:
yzxzxy=−yzzxxy=−yy=−1
If I can avoid conventional quaternions for some computation, I will, since I
find the cycle-based bivectors more intuitive. But, at least I can now bridge
the gap, if I need to.