Difference between revisions of "Flector"

From Projective Geometric Algebra
Jump to navigation Jump to search
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[Image:improper_isom.png|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.]]
+
[[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]].
  
Line 20: Line 20:
 
The [[bulk norm]] of a flector $$\mathbf G$$ is given by
 
The [[bulk norm]] of a flector $$\mathbf G$$ is given by
  
:$$\left\Vert\mathbf G\right\Vert_\unicode{x25CF} = \sqrt{\mathbf G \mathbin{\unicode{x27D1}} \mathbf{\tilde G}} = \sqrt{s_x^2 + s_y^2 + s_z^2 + h_w^2}$$ ,
+
:$$\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
 
and its [[weight norm]] is given by
  
:$$\left\Vert\mathbf G\right\Vert_\unicode{x25CB} = \sqrt{\mathbf G \mathbin{\unicode{x27C7}} \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}$$ .
+
:$$\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
 
The [[geometric norm]] of a flector $$\mathbf G$$ is thus

Revision as of 20:28, 21 October 2021

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.

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

See Also