In Clifford algebra all units forms a group, so we can construct a unit dual-quaternion from two quaternions q and t where q is a unit rotation quaternion and t is a pure quaternion representing the translation:
\[
d = (1 + \frac{1}{2}te)q = q + \frac{1}{2}tq e
\]
It’s unit because
\begin{align}
d d^* &= (q + \frac{1}{2}tqe)(q^* – \frac{1}{2}q^*t e) \\
&= qq^* + (t – t)\frac{e}{2} \\
&= 1
\end{align}
Thus
\[d^{-1} = d^*\]
If there are 2 unit dual-quaternions \(d\) and \(c\) we have
\[
(dc)(dc)^* = dcc^*d^* = dd^* = 1
\]
Now we examine its action on \(R^3\). In Clifford algebra points can be represented with the form: \( w + ve\)
\[ e_{123} + (xe_{23} + ye_{31} + ze_{12})e \]
the action of the group on the space is given by
\begin{align}
& (q+\frac{1}{2}tqe)(w+ve)(q^* – \frac{1}{2}q^*te) = w + (qvq^* + h)e
\end{align}
Where
\[ h = t_x e_{23} + t_y e_{31} + t_z e_{12} \]
Another representation of points is using the translation subgroup: let \(1 + xe\) be a dual-quaternion that represents a element in \(R^3\), the action is
\begin{align}
& (q + \frac{1}{2}tq e)(1+xe)(q^* + \frac{1}{2}q^*te) \\
&= (q + qxe + \frac{1}{2}tqe)(q^* + \frac{1}{2}q^*te) \\
&= 1 + \frac{1}{2}te + qxq^*e + \frac{1}{2}te \\
&= 1 + (qxq^* + t)e
\end{align}
So the action on the elements of \(R^3\) is a rigid motion:
\[ v \mapsto qvq^* + t \]
We can combine dual-quaternions through multiplication
\begin{align}
& (q_2 + \frac{1}{2}t_2 q_2 e)(q_1 + \frac{1}{2}t_1 q_1 e) \\
&= q_2 q_1 + \frac{1}{2}(t_2 + q_2 t_1 q_2^*)q_2 q_1 e \\
&= (1 + \frac{1}{2}(t_2 + q_2 t_1 q_2^*))q_2 q_1 e
\end{align}
then we obtain
\[
v \mapsto q_2q_1vq_1^*q_2^* + q_2t_1q_2^* +t_2
\]
great formulas!!!! see also
sourceforge.net/projects/frc4/files/706
bye from salsomaggiore IT 3 gen 2017
Blending of dual quaternions can be elegantly computed in a vertex shader with complexity comparable to standard linear blending.
The above blending of Dual Quaternions will compute a new Dual Quaternion which is guaranteed to represent only a rotation and a translation.
Hurrah! Its also nice piece of writing concerning JavaScript, I am genuinely eager of learning JavaScript. thanks admin
What’s up i am kavin, its my first time to commenting anyplace, when i read this piece of writing i thought i could also create comment due to this good article.