From Rigid Geometric Algebra
Revision as of 23:51, 13 April 2024 by Eric Lengyel (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Figure 1. A flector represents an improper Euclidean isometry, which can always be regarded as a rotation about a line $$\boldsymbol l$$ and a reflection across a plane perpendicular to the same line.

A flector is an operator that performs an improper isometry in Euclidean space. Such isometries encompass all possible combinations of an odd number of reflections, inversions, transflections, and rotoreflections. The name flector is a portmanteau of reflection operator. Flectors cannot perform proper isometries that do not include reflections; those are instead performed by operators called motors.

In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form

$$\mathbf F = F_{px} \mathbf e_1 + F_{py} \mathbf e_2 + F_{pz} \mathbf e_3 + F_{pw} \mathbf e_4 + F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$ ,

which is the sum of a point $$\mathbf p$$ and a plane $$\mathbf g$$. To satisfy the geometric constraint, the components of $$\mathbf F$$ must satisfy the equation

$$F_{px} F_{gx} + F_{py} F_{gy} + F_{pz} F_{gz} + F_{pw} F_{gw} = 0$$ ,

and this means that the point $$\mathbf p$$ must lie in the plane $$\mathbf g$$.

An element $$\mathbf x$$ is transformed by a flector $$\mathbf F$$ through the operation $$\mathbf x' = -\mathbf F \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}$$, where $$\unicode{x27C7}$$ is the geometric antiproduct.

The set of all flectors is the coset of the set $$\unicode{x1D544}$$ of all motors in a geometric algebra. As such, the set of all flectors is $$\{\mathbf Q \mathbin{\unicode{x27C7}} \mathbf F \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf F$$ is any fixed flector. In particular, since $$\mathbf e_4$$ is a flector (representing inversion through the origin), any flector can be written as $$\mathbf Q \mathbin{\unicode{x27C7}} \mathbf e_4$$ for some motor $$\mathbf Q$$.


The bulk norm of a flector $$\mathbf F$$ is given by

$$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{\mathbf F \mathbin{\unicode{x25CF}} \mathbf{\tilde F}} = \sqrt{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}$$ ,

and its weight norm is given by

$$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = \sqrt{\mathbf F \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{F}}}\vphantom{\mathbf{\tilde F}}} = {\large\unicode{x1D7D9}}\sqrt{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}$$ .

The geometric norm of a flector $$\mathbf F$$ is thus

$$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{F_{px}^2 + F_{py}^2 + F_{pz}^2 + F_{gw}^2}{F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2}}$$ ,

and this is equal to half the distance that the origin is moved by the operator.

A flector is unitized when $$F_{gx}^2 + F_{gy}^2 + F_{gz}^2 + F_{pw}^2 = 1$$.

Trigonometric Form

A general flector $$\mathbf F$$ can be expressed in terms of a unitized point $$\mathbf p$$ and a unitized plane $$\mathbf g$$ as

$$\mathbf F = \mathbf p\sin\phi + \mathbf g\cos\phi$$ .

This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf g$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf g$$ passing through the point $$\mathbf p$$. All combinations of a reflection, a rotation, and a translation, even if the original rotation axis is not perpendicular to the original reflection plane, can be formulated as a rotoreflection with respect to some plane.


Any unitized flector $$\mathbf F$$ for which $$F_{pw} \neq \pm1$$ can be factored into the product of a simple motor $$\mathbf Q$$ and a plane by calculating

$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left(\mathbf F \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{g}}\right)$$ ,

where the division unitizes the plane $$\mathbf g = F_{gx} \mathbf e_{423} + F_{gy} \mathbf e_{431} + F_{gz} \mathbf e_{412} + F_{gw} \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by

$$\mathbf Q = \dfrac{1}{\sqrt{1 - F_{pw}^2}}\left[-F_{gx} F_{pw} \mathbf e_{41} - F_{gy} F_{pw} \mathbf e_{42} - F_{gz} F_{pw} \mathbf e_{43} + (F_{gy} F_{pz} - F_{gz} F_{py})\mathbf e_{23} + (F_{gz} F_{px} - F_{gx} F_{pz})\mathbf e_{31} + (F_{gx} F_{py} - F_{gy} F_{px})\mathbf e_{12} + (1 - F_{pw}^2){\large\unicode{x1d7d9}}\right]$$ ,

which is always unitized. The original flector $$\mathbf F$$ can now be expressed as

$$\mathbf F = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf g}{\sqrt{1 - F_{pw}^2}}$$ .

Conversion from Flector to Matrix

Given a specific unitized flector $$\mathbf G$$, define the matrices

$$\mathbf A = \begin{bmatrix}2(F_{gy}^2 + F_{gz}^2) - 1 & -2F_{gx}F_{gy} & -2F_{gz}F_{gx} & 2(F_{px}F_{pw} - F_{gx}F_{gw}) \\ -2F_{gx}F_{gy} & 2(F_{gz}^2 + F_{gx}^2) - 1 & -2F_{gy}F_{gz} & 2(F_{py}F_{pw} - F_{gy}F_{gw}) \\ -2F_{gz}F_{gx} & -2F_{gy}F_{gz} & 2(F_{gx}^2 + F_{gy}^2) - 1 & 2(F_{pz}F_{pw} - F_{gz}F_{gw}) \\ 0 & 0 & 0 & 1\end{bmatrix}$$


$$\mathbf B = \begin{bmatrix}0 & 2F_{gz}F_{pw} & -2F_{gy}F_{pw} & 2(F_{gy}F_{pz} - F_{gz}F_{py}) \\ -2F_{gz}F_{pw} & 0 & 2F_{gx}F_{pw} & 2(F_{gz}F_{px} - F_{gx}F_{pz}) \\ 2F_{gy}F_{pw} & -2F_{gx}F_{pw} & 0 & 2(F_{gx}F_{py} - F_{gy}F_{px}) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .

Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a point $$\mathbf q$$, regarded as a column matrix, as $$\mathbf q' = \mathbf{Mq}$$ is given by

$$\mathbf M = \mathbf A + \mathbf B$$ .

The inverse of $$\mathbf M$$, which transforms a plane $$\mathbf h$$, regarded as a row matrix, as $$\mathbf h' = \mathbf{hM^{-1}}$$ is given by

$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .

Conversion from Matrix to Flector

Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant −1 having the form

$$\mathbf M = \begin{bmatrix} M_{00} & M_{01} & M_{02} & M_{03} \\ M_{10} & M_{11} & M_{12} & M_{13} \\ M_{20} & M_{21} & M_{22} & M_{23} \\ 0 & 0 & 0 & 1\end{bmatrix}$$ .

Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:

$$1 - M_{00} + M_{11} + M_{22} = 4F_{gx}^2$$
$$1 - M_{11} + M_{22} + M_{00} = 4F_{gy}^2$$
$$1 - M_{22} + M_{00} + M_{11} = 4F_{gz}^2$$
$$1 - M_{00} - M_{11} - M_{22} = 4(1 - F_{gx}^2 - F_{gy}^2 - F_{gz}^2) = 4F_{pw}^2$$

And we have the following six relationships based on the off-diagonal entries of $$\mathbf M$$:

$$M_{21} + M_{12} = -4F_{gy}F_{gz}$$
$$M_{02} + M_{20} = -4F_{gz}F_{gx}$$
$$M_{10} + M_{01} = -4F_{gx}F_{gy}$$
$$M_{21} - M_{12} = -4F_{gx}F_{pw}$$
$$M_{02} - M_{20} = -4F_{gy}F_{pw}$$
$$M_{10} - M_{01} = -4F_{gz}F_{pw}$$

If $$M_{00} + M_{11} + M_{22} \leq 0$$, then we calculate

$$F_{pw} = \pm \dfrac{1}{2}\sqrt{1 - M_{00} - M_{11} - M_{22}}$$ ,

where either sign can be chosen. In this case, we know $$|F_{pw}|$$ is at least $$1/2$$, so we can safely divide by $$-4F_{pw}$$ in the last three off-diagonal relationships above to solve for $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} > 0$$, then we select one of the first three diagonal relationships based on the smallest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$F_{gx}$$, $$F_{gy}$$, or $$F_{gz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$F_{gx}$$, $$F_{gy}$$, and $$F_{gz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$F_{pw}$$.

Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$F_{px}$$, $$F_{py}$$, $$F_{pz}$$, and $$F_{gw}$$ are given by

$$F_{px} = \dfrac{1}{2}(F_{pw}t_x + F_{gz}t_y - F_{gy}t_z)$$

$$F_{py} = \dfrac{1}{2}(F_{pw}t_y + F_{gx}t_z - F_{gz}t_x)$$

$$F_{pz} = \dfrac{1}{2}(F_{pw}t_z + F_{gy}t_x - F_{gx}t_y)$$

$$F_{gw} = -\dfrac{1}{2}(F_{gx}t_x + F_{gy}t_y + F_{gz}t_z)$$ .

Flector Transformations

Points, lines, and planes are transformed by a unitized flector $$\mathbf F$$ as shown in the following table, where $$\mathbf p = (F_{px}, F_{py}, F_{pz})$$ and $$\mathbf g = (F_{gx}, F_{gy}, F_{gz})$$.

Type Transformation

$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$

$$\mathbf a = \mathbf g \times \mathbf q_{xyz} - q_w\mathbf p$$

$$\mathbf q'_{xyz} = \mathbf q_{xyz} + 2(F_{pw}\mathbf a + \mathbf g \times \mathbf a + F_{gw}q_w\mathbf g)$$

$$q'_w = -q_w$$


$$\begin{split}\mathbf k =\, &k_{vx} \mathbf e_{41} + k_{vy} \mathbf e_{42} + k_{vz} \mathbf e_{43} \\ +\, &k_{mx} \mathbf e_{23} + k_{my} \mathbf e_{31} + k_{mz} \mathbf e_{12}\end{split}$$

$$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$

$$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$

$$\mathbf c = \mathbf p \times \mathbf k_{\mathbf v}$$

$$\mathbf k'_{\mathbf v} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf k_{\mathbf v}$$

$$\mathbf k'_{\mathbf m} = 2[F_{gw}\mathbf a + F_{pw}(\mathbf c - \mathbf b) + \mathbf g \times (\mathbf c - \mathbf b) + \mathbf p \times \mathbf a] - \mathbf k_{\mathbf m}$$


$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$

$$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$

$$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$

$$h'_w = h_w + 2[(\mathbf h_{xyz} \times \mathbf p - F_{gw}\mathbf h_{xyz}) \cdot \mathbf g + F_{pw}(\mathbf p \cdot \mathbf h_{xyz})]$$

In the Book

  • General reflection operators (flectors) are discussed in Section 3.7.

See Also