# Difference between revisions of "Flector"

Eric Lengyel (talk | contribs) (→Norm) |
Eric Lengyel (talk | contribs) |
||

Line 1: | Line 1: | ||

− | [[Image:improper_isom. | + | [[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 $$\mathbf 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]]. | 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]]. | ||

## Revision as of 20:28, 21 October 2021

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 projective geometric algebra \(\mathcal G_{3,0,1}\), a flector $$\mathbf G$$ has the general form

- $$\mathbf G = s_x \mathbf e_1 + s_y \mathbf e_2 + s_z \mathbf e_3 + s_w \mathbf e_4 + h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$ ,

which is the sum of a point $$\mathbf s$$ and a plane $$\mathbf h$$. To possess the geometric property, the components of $$\mathbf G$$ must satisfy the equation

- $$s_x h_x + s_y h_y + s_z h_z + s_w h_w = 0$$ ,

and this means that the point $$\mathbf s$$ must lie in the plane $$\mathbf h$$.

An element $$\mathbf x$$ is transformed by a flector $$\mathbf G$$ through the sandwich product $$\mathbf x' = -\mathbf G \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{G}}}$$, 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 G \mid \mathbf Q \in \unicode{x1D544}\}$$, where $$\mathbf G$$ 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 G$$ is given by

- $$\left\Vert\mathbf G\right\Vert_\unicode{x25CF} = \sqrt{\mathbf G \mathbin{\unicode{x25CF}} \mathbf{\tilde G}} = \sqrt{s_x^2 + s_y^2 + s_z^2 + h_w^2}$$ ,

and its weight norm is given by

- $$\left\Vert\mathbf G\right\Vert_\unicode{x25CB} = \sqrt{\mathbf G \mathbin{\unicode{x25CB}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{G}}}\vphantom{\mathbf{\tilde G}}} = {\large\unicode{x1D7D9}}\sqrt{h_x^2 + h_y^2 + h_z^2 + s_w^2}$$ .

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

- $$\left\Vert\mathbf G\right\Vert = \sqrt{\dfrac{s_x^2 + s_y^2 + s_z^2 + h_w^2}{h_x^2 + h_y^2 + h_z^2 + s_w^2}}$$ ,

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

A flector is unitized when $$h_x^2 + h_y^2 + h_z^2 + s_w^2 = 1$$.

## Trigonometric Form

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

- $$\mathbf G = \mathbf p\sin\phi + \mathbf f\cos\phi$$ .

This can be interpreted as performing a rotoreflection consisting of a reflection through the plane $$\mathbf f$$ and a rotation by twice the angle $$\phi$$ about an axis perpendicular to $$\mathbf f$$ 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 G$$ for which $$s_w \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 - s_w^2}}\left(\mathbf G \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{h}}\right)$$ ,

where the division unitizes the plane $$\mathbf h = h_x \mathbf e_{234} + h_y \mathbf e_{314} + h_z \mathbf e_{124} + h_w \mathbf e_{321}$$. The motor $$\mathbf Q$$ is then given by

- $$\mathbf Q = \dfrac{1}{\sqrt{1 - s_w^2}}\left[-h_xs_w \mathbf e_{41} - h_ys_w \mathbf e_{42} - h_zs_w \mathbf e_{43} + (h_ys_z - h_zs_y)\mathbf e_{23} + (h_zs_x - h_xs_z)\mathbf e_{31} + (h_xs_y - h_ys_x)\mathbf e_{12} + (1 - s_w^2){\large\unicode{x1d7d9}}\right]$$ ,

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

- $$\mathbf G = \mathbf Q \mathbin{\unicode{x27C7}} \dfrac{\mathbf h}{\sqrt{1 - s_w^2}}$$ .

## Conversion from Flector to Matrix

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

- $$\mathbf A = \begin{bmatrix}2(h_y^2 + h_z^2) - 1 & -2h_xh_y & -2h_zh_x & 2(s_xs_w - h_xh_w) \\ -2h_xh_y & 2(h_z^2 + h_x^2) - 1 & -2h_yh_z & 2(s_ys_w - h_yh_w) \\ -2h_zh_x & -2h_yh_z & 2(h_x^2 + h_y^2) - 1 & 2(s_zs_w - h_zh_w) \\ 0 & 0 & 0 & 1\end{bmatrix}$$

and

- $$\mathbf B = \begin{bmatrix}0 & 2h_zs_w & -2h_ys_w & 2(h_ys_z - h_zs_y) \\ -2h_zs_w & 0 & 2h_xs_w & 2(h_zs_x - h_xs_z) \\ 2h_ys_w & -2h_xs_w & 0 & 2(h_xs_y - h_ys_x) \\ 0 & 0 & 0 & 0\end{bmatrix}$$ .

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

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

The inverse of $$\mathbf M$$, which transforms a plane, regarded as a row matrix, as $$\mathbf f' = \mathbf{fM^{-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} = 4h_x^2$$

- $$1 - M_{11} + M_{22} + M_{00} = 4h_y^2$$

- $$1 - M_{22} + M_{00} + M_{11} = 4h_z^2$$

- $$1 - M_{00} - M_{11} - M_{22} = 4(1 - h_x^2 - h_y^2 - h_z^2) = 4s_w^2$$

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

- $$M_{21} + M_{12} = -4h_yh_z$$

- $$M_{02} + M_{20} = -4h_zh_x$$

- $$M_{10} + M_{01} = -4h_xh_y$$

- $$M_{21} - M_{12} = -4h_xs_w$$

- $$M_{02} - M_{20} = -4h_ys_w$$

- $$M_{10} - M_{01} = -4h_zs_w$$

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

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

where either sign can be chosen. In this case, we know $$|s_w|$$ is at least $$1/2$$, so we can safely divide by $$-4s_w$$ in the last three off-diagonal relationships above to solve for $$h_x$$, $$h_y$$, and $$h_z$$. 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 $$h_x$$, $$h_y$$, or $$h_z$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$h_x$$, $$h_y$$, and $$h_z$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$s_w$$.

Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$s_x$$, $$s_y$$, $$s_z$$, and $$h_w$$ are given by

$$s_x = \dfrac{1}{2}(s_wt_x + h_zt_y - h_yt_z)$$

$$s_y = \dfrac{1}{2}(s_wt_y + h_xt_z - h_zt_x)$$

$$s_z = \dfrac{1}{2}(s_wt_z + h_yt_x - h_xt_y)$$

$$h_w = \dfrac{1}{2}(-h_xt_x - h_yt_y - h_zt_z)$$ .

## Flector Transformations

Points, lines, and planes are transformed by a unitized flector $$\mathbf G$$ as shown in the following table.

Type | Transformation |
---|---|

Point
$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3 + p_w \mathbf e_4$$ |
$$\begin{split}\mathbf G \mathbin{\unicode{x27C7}} \mathbf p \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{G}}} =\, &\left[(2h_y^2 + 2h_z^2 - 1)p_x + 2(h_zs_w - h_xh_y)p_y - 2(h_ys_w + h_zh_x)p_z + 2(h_ys_z - h_zs_y + s_xs_w - h_xh_w)p_w\right]\mathbf e_1 \\ +\, &\left[(2h_z^2 + 2h_x^2 - 1)p_y + 2(h_xs_w - h_yh_z)p_z - 2(h_zs_w + h_xh_y)p_x + 2(h_zs_x - h_xs_z + s_ys_w - h_yh_w)p_w\right]\mathbf e_2 \\ +\, &\left[(2h_x^2 + 2h_y^2 - 1)p_z + 2(h_ys_w - h_zh_x)p_x - 2(h_xs_w + h_yh_z)p_y + 2(h_xs_y - h_ys_x + s_zs_w - h_zh_w)p_w\right]\mathbf e_3 \\ +\, &p_w\mathbf e_4\end{split}$$ |

Line
$$\begin{split}\mathbf L =\, &v_x \mathbf e_{41} + v_y \mathbf e_{42} + v_z \mathbf e_{43} \\ +\, &m_x \mathbf e_{23} + m_y \mathbf e_{31} + m_z \mathbf e_{12}\end{split}$$ |
$$\begin{split}\mathbf G \mathbin{\unicode{x27C7}} \mathbf L \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{G}}} =\, &\left[(1 - 2h_y^2 - 2h_z^2)v_x + 2(h_xh_y - h_zs_w)v_y + 2(h_zh_x + h_ys_w)v_z\right]\mathbf e_{41} \\ +\, &\left[(1 - 2h_z^2 - 2h_x^2)v_y + 2(h_yh_z - h_xs_w)v_z + 2(h_xh_y + h_zs_w)v_x\right]\mathbf e_{42} \\ +\, &\left[(1 - 2h_x^2 - 2h_y^2)v_z + 2(h_zh_x - h_ys_w)v_x + 2(h_yh_z + h_xs_w)v_y\right]\mathbf e_{43} \\ +\, &\left[-4(h_ys_y + h_zs_z)v_x + 2(h_xs_y + h_ys_x)v_y + 2(h_xs_z + h_zs_x + h_yh_w + s_ys_w)v_z + (2h_y^2 + 2h_z^2 - 1)m_x + 2(h_zs_w - h_xh_y)m_y - 2(h_ys_w + h_zh_x)m_z\right]\mathbf e_{23} \\ +\, &\left[-4(h_zs_z + h_xs_x)v_y + 2(h_ys_z + h_zs_y)v_z + 2(h_ys_x + h_xs_y + h_zh_w + s_zs_w)v_x + (2h_z^2 + 2h_x^2 - 1)m_y + 2(h_xs_w - h_yh_z)m_z - 2(h_zs_w + h_xh_y)m_x\right]\mathbf e_{31} \\ +\, &\left[-4(h_xs_x + h_ys_y)v_z + 2(h_zs_x + h_xs_z)v_x + 2(h_zs_y + h_ys_z + h_xh_w + s_xs_w)v_y + (2h_x^2 + 2h_y^2 - 1)m_z + 2(h_ys_w - h_zh_x)m_x - 2(h_xs_w + h_yh_z)m_y\right]\mathbf e_{12}\end{split}$$ |

Plane
$$\mathbf f = f_x \mathbf e_{234} + f_y \mathbf e_{314} + f_z \mathbf e_{124} + f_w \mathbf e_{321}$$ |
$$\begin{split}\mathbf G \mathbin{\unicode{x27C7}} \mathbf f \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{G}}} =\, &\left[(1 - 2h_y^2 - 2h_z^2)f_x + 2(h_xh_y - h_zs_w)f_y + 2(h_zh_x + h_ys_w)f_z\right]\mathbf e_{234} \\ +\, &\left[(1 - 2h_z^2 - 2h_x^2)f_y + 2(h_yh_z - h_xs_w)f_z + 2(h_xh_y + h_zs_w)f_x\right]\mathbf e_{314} \\ +\, &\left[(1 - 2h_x^2 - 2h_y^2)f_z + 2(h_zh_x - h_ys_w)f_x + 2(h_yh_z + h_xs_w)f_y\right]\mathbf e_{124} \\ +\, &\left[2(h_ys_z - h_zs_y + h_xh_w - s_xs_w)f_x + 2(h_zs_x - h_xs_z + h_yh_w - s_ys_w)f_y + 2(h_xs_y - h_ys_x + h_zh_w - s_zs_w)f_z - f_w\right]\mathbf e_{321}\end{split}$$ |