Join and meet and Flector: Difference between pages

From Rigid Geometric Algebra
(Difference between pages)
Jump to navigation Jump to search
(Created page with "The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection. The points, lines, and planes appearing in the following tables are defined as follows: :$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ :$$\mathbf...")
 
 
Line 1: Line 1:
The ''join'' is a binary operation that calculates the higher-dimensional geometry containing its two operands, similar to a union. The ''meet'' is another binary operation that calculates the lower-dimensional geometry shared by its two operands, similar to an intersection.
[[Image:improper_isom.svg|400px|thumb|right|'''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]].


The [[points]], [[lines]], and [[planes]] appearing in the following tables are defined as follows:
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a flector $$\mathbf F$$ has the general form


:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$
:$$\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}$$ ,
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
:$$\boldsymbol l = l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43} + l_{mx} \mathbf e_{23} + l_{my} \mathbf e_{31} + l_{mz} \mathbf e_{12}$$
:$$\mathbf g = g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412} + g_w \mathbf e_{321}$$
:$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$


The join operation is performed by taking the [[wedge product]] between two geometric objects. The meet operation is performed by taking the [[antiwedge product]] between two geometric objects.
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$$.
 
== Norm ==
 
The [[bulk norm]] of a flector $$\mathbf F$$ is given by
 
:$$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf F \mathbin{\unicode["segoe ui symbol"]{x2022}} \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["segoe ui symbol"]{x25CB} = \sqrt{\mathbf F \mathbin{\unicode["segoe ui symbol"]{x2218}} \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.
 
== Factorization ==
 
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 [[Unitization | 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}$$
 
and
 
:$$\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 ==
 
[[Point | Points]], [[Line | lines]], and [[Plane | 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})$$.


{| class="wikitable"
{| class="wikitable"
! Formula || Commutator || Description || Illustration
! Type || Transformation
|-
|-
| style="padding: 12px;" | $$\begin{split}\mathbf p \wedge \mathbf q =\, &(p_wq_x - p_xq_w)\,\mathbf e_{41} + (p_wq_y - p_yq_w)\,\mathbf e_{42} + (p_wq_z - p_zq_w)\,\mathbf e_{43} \\ +\, &(p_yq_z - p_zq_y)\,\mathbf e_{23} + (p_zq_x - p_xq_z)\,\mathbf e_{31} + (p_xq_y - p_yq_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$[\mathbf p, \mathbf q]^{\Large\unicode{x27D1}}_-$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.


Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3 + q_w \mathbf e_4$$
| style="padding: 12px;" | [[Image:point_join_point.svg|250px]]
| style="padding: 12px;" | $$\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$$
|-
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \wedge \mathbf p =\, &(l_{vy} p_z - l_{vz} p_y + l_{mx} p_w)\,\mathbf e_{423} \\ +\, &(l_{vz} p_x - l_{vx} p_z + l_{my} p_w)\,\mathbf e_{431} \\ +\, &(l_{vx} p_y - l_{vy} p_x + l_{mz} p_w)\,\mathbf e_{412} \\ -\, &(l_{mx} p_x + l_{my} p_y + l_{mz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$[\boldsymbol l, \mathbf p]^{\Large\unicode{x27D1}}_+$$
 
| style="padding: 12px;" | Plane containing line $$\boldsymbol l$$ and point $$\mathbf p$$.
$$\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}$$
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf k_{\mathbf v}$$


Zero if $$\mathbf p$$ lies on the line $$\boldsymbol l$$.
$$\mathbf b = \mathbf g \times \mathbf k_{\mathbf m}$$
| style="padding: 12px;" | [[Image:line_join_point.svg|250px]]
 
$$\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}$$
|-
|-
| style="padding: 12px;" | $$\begin{split}\mathbf g \vee \mathbf h =\, &(g_zh_y - g_yh_z)\,\mathbf e_{41} + (g_xh_z - g_zh_x)\,\mathbf e_{42} + (g_yh_x - g_xh_y)\,\mathbf e_{43} \\ +\, &(g_xh_w - g_wh_x)\,\mathbf e_{23} + (g_yh_w - g_wh_y)\,\mathbf e_{31} + (g_zh_w - g_wh_z)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | [[Plane]]
| style="padding: 12px;" | $$[\mathbf g, \mathbf h]^{\Large\unicode{x27C7}}_-$$
| style="padding: 12px;" | Line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect.


Direction $$\mathbf v$$ is zero if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
$$\mathbf h = h_x \mathbf e_{423} + h_y \mathbf e_{431} + h_z \mathbf e_{412} + h_w \mathbf e_{321}$$
| style="padding: 12px;" | [[Image:plane_meet_plane.svg|250px]]
| style="padding: 12px;" | $$\mathbf a = \mathbf g \times \mathbf h_{xyz}$$
|-
| style="padding: 12px;" | $$\begin{split}\boldsymbol l \vee \mathbf g =\, &(l_{my} g_z - l_{mz} g_y + l_{vx} g_w)\,\mathbf e_1 \\ +\, &(l_{mz} g_x - l_{mx} g_z + l_{vy} g_w)\,\mathbf e_2 \\ +\, &(l_{mx} g_y - l_{my} g_x + l_{vz} g_w)\,\mathbf e_3 \\ -\, &(l_{vx} g_x + l_{vy} g_y + l_{vz} g_z)\,\mathbf e_4\end{split}$$
| style="padding: 12px;" | $$[\boldsymbol l, \mathbf g]^{\Large\unicode{x27C7}}_+$$
| style="padding: 12px;" | Point where line $$\boldsymbol l$$ intersects plane $$\mathbf g$$.


Weight $$w$$ is zero if $$\boldsymbol l$$ is parallel to $$\mathbf g$$.
$$\mathbf h'_{xyz} = 2(\mathbf a \times \mathbf g - F_{pw}\mathbf a) - \mathbf h_{xyz}$$
| style="padding: 12px;" | [[Image:line_meet_plane.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \mathbf p =\, &-g_xp_w \mathbf e_{41} - g_yp_w \mathbf e_{42} - g_zp_w \mathbf e_{43} \\ +\, &(g_yp_z - g_zp_y)\,\mathbf e_{23} + (g_zp_x - g_xp_z)\,\mathbf e_{31} + (g_xp_y - g_yp_x)\,\mathbf e_{12}\end{split}$$
| style="padding: 12px;" | $$[\mathbf p, \mathbf g]^{\Large\unicode{x27C7}}_+$$
| style="padding: 12px;" | Line perpendicular to plane $$\mathbf g$$ passing through point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:plane_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p =\, &-l_{vx} p_w \mathbf e_{423} - l_{vy} p_w \mathbf e_{431} - l_{vz} p_w \mathbf e_{412} \\ +\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | $$-[\mathbf p, \boldsymbol l]^{\Large\unicode{x27C7}}_+$$
| style="padding: 12px;" | Plane perpendicular to line $$\boldsymbol l$$ containing point $$\mathbf p$$.
| style="padding: 12px;" | [[Image:line_weight_join_point.svg|250px]]
|-
| style="padding: 12px;" | $$\begin{split}\underline{\mathbf g_\smash{\unicode{x25CB}}} \wedge \boldsymbol l =\, &(g_zl_{vy} - g_yl_{vz})\,\mathbf e_{423} + (g_xl_{vz} - g_zl_{vx})\,\mathbf e_{431} + (g_yl_{vx} - g_xl_{vy})\,\mathbf e_{412} \\ -\, &(g_xl_{mx} + g_yl_{my} + g_zl_{mz})\,\mathbf e_{321}\end{split}$$
| style="padding: 12px;" | $$[\boldsymbol l, \mathbf g]^{\Large\unicode{x27C7}}_-$$
| style="padding: 12px;" | Plane perpendicular to plane $$\mathbf g$$ containing line $$\boldsymbol l$$.


Normal direction is $$(0,0,0)$$ if $$\boldsymbol l$$ is perpendicular to $$\mathbf g$$.
$$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})]$$
| style="padding: 12px;" | [[Image:plane_weight_join_line.svg|250px]]
|}
|}
== In the Book ==
* General reflection operators (flectors) are discussed in Section 3.7.


== See Also ==
== See Also ==


* [[Exterior products]]
* [[Motor]]
* [[Commutators]]
* [[Reflection]]
* [[Inversion]]
* [[Transflection]]

Latest revision as of 01:20, 8 July 2024

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$$.

Norm

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

$$\left\Vert\mathbf F\right\Vert_\unicode["segoe ui symbol"]{x25CF} = \sqrt{\mathbf F \mathbin{\unicode["segoe ui symbol"]{x2022}} \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["segoe ui symbol"]{x25CB} = \sqrt{\mathbf F \mathbin{\unicode["segoe ui symbol"]{x2218}} \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.

Factorization

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}$$

and

$$\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
Point

$$\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$$

Line

$$\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}$$

Plane

$$\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