Rigid Geometric Algebra for 2D Space and Projections: Difference between pages

From Rigid Geometric Algebra
(Difference between pages)
Jump to navigation Jump to search
No edit summary
 
No edit summary
 
Line 1: Line 1:
== Introduction ==
Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below.


[[Image:Basis201.svg|thumb|right|400px|'''Table 1.''' The 8 basis elements of the 3D rigid geometric algebra.]]
The formulas on this page are general and do not require the geometric objects to be [[unitized]]. Most of them become simpler if unitization can be assumed.
In the three-dimensional rigid geometric algebra, there are 8 graded basis elements. These are listed in Table 1.


There is a single ''scalar'' basis element $$\mathbf 1$$, and its multiples correspond to the real numbers, which are values that have no dimensions.
== Projection ==


There are three ''vector'' basis elements named $$\mathbf e_1$$, $$\mathbf e_2$$, and $$\mathbf e_3$$ that have one-dimensional extents. A general vector $$\mathbf v = (v_x, v_y, v_z)$$ has the form
The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula


:$$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ .


There are three ''bivector'' basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
Projections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.
 
Finally, there is a single ''trivector'' basis element $${\large\unicode{x1D7D9}} = \mathbf e_3 \wedge \mathbf e_2 \wedge \mathbf e_1$$ having three-dimensional extents.
 
__TOC__
<br clear="right" />
== Unary Operations ==
 
The 3D rigid geometric algebra has a single [[complement]] operation, a [[reverse]] operation, and an [[antireverse]] operation. (In three dimensions, the left and right [[complements]] are identical.) These are listed for all basis elements in the following table.
 
[[Image:Unary201.svg|480px]]
 
== Geometric Products ==
 
The geometric product is characterized by a metric that defines the products of the basis vectors with themselves. The subscript in $$\mathcal G_{2,0,1}$$ means that two basis vectors square to +1, zero basis vectors square to &minus;1, and one basis vector squares to 0. The geometric product between two different basis vectors is given by the [[wedge product]]. We can write these rules as follows.
 
:$$\mathbf e_1 \mathbin{\unicode{x27D1}} \mathbf e_1 = 1$$
 
:$$\mathbf e_2 \mathbin{\unicode{x27D1}} \mathbf e_2 = 1$$
 
:$$\mathbf e_3 \mathbin{\unicode{x27D1}} \mathbf e_3 = 0$$
 
:$$\mathbf e_i \mathbin{\unicode{x27D1}} \mathbf e_j = \mathbf e_i \wedge \mathbf e_j$$, for $$i \neq j$$.
 
The following Cayley table shows the geometric products between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric product is the [[scalar]] basis element $$\mathbf 1$$.
 
[[Image:GeometricProduct201.svg|360px]]
 
The following Cayley table shows the geometric antiproducts between all pairs of basis elements in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$. The identity of the geometric antiproduct is the [[antiscalar]] basis element $$\large\unicode{x1D7D9}$$.
 
[[Image:GeometricAntiproduct201.svg|360px]]
 
== Points ==
 
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''point'' $$\mathbf p$$ is a vector having the general form
 
:$$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ .
 
The [[bulk]] of a point is given by its $$x$$ and $$y$$ coordinates, and the [[weight]] of a point is given by its $$z$$ coordinate. A point is [[unitized]] when $$p_z^2 = 1$$.
 
When used as an operator in the sandwich product, a point is a specific kind of [[motor]] that performs a [[rotation]] about itself.
 
If the weight of a point is zero (i.e., its $$z$$ coordinate is zero), then the point lies at infinity in the direction $$(x, y)$$, and it cannot be unitized. A point with zero weight can also be interpreted as a direction vector, and it is normalized to unit length by dividing by its [[bulk norm]].
 
== Lines ==
 
In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a ''line'' $$\mathbf g$$ is a bivector having the general form
 
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$ .
 
The [[bulk]] of a line is given by its $$z$$ coordinate, and the [[weight]] of a line is given by its $$x$$ and $$y$$ coordinates. A line is [[unitized]] when $$g_x^2 + g_y^2 = 1$$.
 
When used as an operator in the sandwich product, a line is a specific kind of [[flector]] that performs a [[reflection]] through itself.
 
If the weight of a line is zero (i.e., its $$x$$ and $$y$$ coordinates are both zero), then the line lies at infinity in all directions. Such a line is normalized when $$g_z = \pm 1$$. This is the ''horizon'' of two-dimensional space.
 
== Bulk and Weight ==
 
The following table lists the [[bulk]] and [[weight]] for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.


{| class="wikitable"
{| class="wikitable"
! Type !! Definition !! Bulk !! Weight
! Projection Formula !! Illustration
|-
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
 
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$
$$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$
| style="padding: 12px;" | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$
| style="padding: 2em;" | [[Image:point_onto_plane.svg|200px]]
|-
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
 
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$
| style="padding: 12px;" | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$
| style="padding: 2em;" | [[Image:point_onto_line.svg|200px]]
|-
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CF} = g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\mathbf g_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$
| style="padding: 12px;" | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$
|}


== Unitization ==
$$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$
 
| style="padding: 2em;" | [[Image:line_onto_plane.svg|200px]]
The following table lists the [[unitization]] conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
 
{| class="wikitable"
! Type !! Definition !! Unitization
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$y^2 = 1$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$p_z^2 = 1$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$g_x^2 + g_y^2 = 1$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$q_z^2 + q_w^2 = 1$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$f_x^2 + f_y^2 = 1$$
|}
|}


== Geometric Norm ==
== Antiprojection ==


The following table lists the [[bulk norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula


{| class="wikitable"
:$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ .
! Type !! Definition !! Bulk Norm
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CF} = |g_z|$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CF} = \sqrt{f_z^2 + f_w^2}$$
|}


The following table lists the [[weight norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
Antiprojections involving [[points]], [[lines]], and [[planes]] in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.


{| class="wikitable"
{| class="wikitable"
! Type !! Definition !! Weight Norm
! Antiprojection Formula !! Illustration
|-
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\left\Vert\mathbf g\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$
|-
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\left\Vert\mathbf F\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{f_x^2 + f_y^2}$$
|}


The following table lists the unitized [[geometric norms]] of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.
$$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$
 
| style="padding: 2em;" | [[Image:plane_onto_point.svg|200px]]
{| class="wikitable"
! Type !! Definition !! Geometric Norm !! Interpretation
|-
| style="padding: 12px;" | [[Magnitude]]
| style="padding: 12px;" | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$
| style="padding: 12px;" | A Euclidean distance.
|-
|-
| style="padding: 12px;" | [[Point]]
| style="padding: 12px;" | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.
| style="padding: 12px;" | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$
| style="padding: 12px;" | Distance from the origin to the point $$\mathbf p$$.


Half the distance that the origin is moved by the [[motor]] $$\mathbf p$$.
$$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$
| style="padding: 2em;" | [[Image:line_onto_point.svg|200px]]
|-
|-
| style="padding: 12px;" | [[Line]]
| style="padding: 12px;" | Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.
| style="padding: 12px;" | $$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf g\right\Vert} = \dfrac{|g_z|}{\sqrt{g_x^2 + g_y^2}}$$
| style="padding: 12px;" | Perpendicular distance from the origin to the line $$\mathbf g$$.


Half the distance that the origin is moved by the [[flector]] $$\mathbf g$$.
$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$
|-
| style="padding: 2em;" | [[Image:plane_onto_line.svg|200px]]
| style="padding: 12px;" | [[Motor]]
| style="padding: 12px;" | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[motor]] $$\mathbf Q$$.
|-
| style="padding: 12px;" | [[Flector]]
| style="padding: 12px;" | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$
| style="padding: 12px;" | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$
| style="padding: 12px;" | Half the distance that the origin is moved by the [[flector]] $$\mathbf F$$.
|}
|}


== Join and Meet ==
== Projection of Origin ==


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.
When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.
 
The points and lines 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$$
:$$\mathbf q = q_x \mathbf e_1 + q_y \mathbf e_2 + q_z \mathbf e_3$$
:$$\mathbf g = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$
:$$\mathbf h = h_x \mathbf e_{23} + h_y \mathbf e_{31} + h_z \mathbf e_{12}$$
 
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.


{| class="wikitable"
{| class="wikitable"
! Formula || Description
! Projection Formula !! Description
|-
| style="padding: 12px;" | $$\mathbf p \wedge \mathbf q = (p_yq_z - q_yp_z)\mathbf e_{23} + (q_xp_z - p_xq_z)\mathbf e_{31} + (p_xq_y - p_yq_x)\mathbf e_{12}$$
| style="padding: 12px;" | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
 
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.
|-
|-
| style="padding: 12px;" | $$\mathbf g \vee \mathbf h = (g_yh_z - h_yg_z)\mathbf e_1 + (g_zh_x - g_xh_z)\mathbf e_2 + (g_xh_y - g_yh_x)\mathbf e_3$$
| style="padding: 12px;" | $$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$
| style="padding: 12px;" | Point where lines $$\mathbf g$$ and $$\mathbf h$$ intersect.
| style="padding: 12px;" | Point closest to the origin on the plane $$\mathbf g$$.
 
Point at infinity if $$\mathbf g$$ and $$\mathbf h$$ are parallel.
|-
|-
| style="padding: 12px;" | $$\mathbf g^* \wedge \mathbf p = -g_yp_z\mathbf e_{23} + g_xp_z\mathbf e_{31} + (g_yp_x - g_xp_y)\mathbf e_{12}$$
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$
| style="padding: 12px;" | Line perpendicular to line $$\mathbf g$$ passing through point $$\mathbf p$$.
| style="padding: 12px;" | Point closest to the origin on the line $$\boldsymbol l$$.
|}
|}


== Projections ==
== Antiprojection of Horizon ==


The only nontrivial [[projections]] in 2D space are the projection of a point onto a line and its corresponding antiprojection. These are given by the following formulas.
Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.


{| class="wikitable"
{| class="wikitable"
! Formula !! Description
! Antiprojection Formula !! Description
|-
|-
| style="padding: 12px;" | $$\left(\mathbf g^* \wedge \mathbf p\right) \vee \mathbf g = (g_x^2 + g_y^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z)(g_x \mathbf e_1 + g_y \mathbf e_2)$$
| style="padding: 12px;" | $$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$
| style="padding: 12px;" | Projection of point $$\mathbf p$$ onto line $$\mathbf g$$.
| style="padding: 12px;" | Plane farthest from the origin containing the point $$\mathbf p$$.
|-
|-
| style="padding: 12px;" | $$\left(\mathbf p^* \vee \mathbf g\right) \wedge \mathbf p = g_xp_z^2 \mathbf e_{23} + g_yp_z^2 \mathbf e_{31} - (g_xp_x + g_yp_y)p_z \mathbf e_{12}$$
| style="padding: 12px;" | $$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$
| style="padding: 12px;" | Antiprojection of line $$\mathbf g$$ onto point $$\mathbf p$$.
| style="padding: 12px;" | Plane farthest from the origin containing the line $$\boldsymbol l$$.
|}
|}


Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf g$$ closest to the origin.
== See Also ==
 
:$$\left(\mathbf g^* \wedge \mathbf e_3\right) \vee \mathbf g = -g_xg_z \mathbf e_1 - g_yg_z \mathbf e_2 + (g_x^2 + g_y^2)\mathbf e_3$$
 
Symmetrically, antiprojecting the line at infinity onto a point gives us the following formula for the line farthest from the origin containing a point $$\mathbf p$$.
 
:$$\left(\mathbf p^\star \vee \mathbf e_{12}\right) \wedge \mathbf p = -p_xp_z \mathbf e_{23} - p_yp_z \mathbf e_{31} + (p_x^2 + p_y^2)\mathbf e_{12}$$
 
== Motors ==
 
The set of all motors corresponds to the set of all proper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[motor]] $$\mathbf Q$$ has the general form
 
:$$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ .
 
A motor represents a rotation about the center $$q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3}$$.
 
A motor $$\mathbf Q$$ can be expressed as the exponential of a unitized point $$\mathbf p$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf p$$. The exponential form can be written as
 
:$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf p) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf p\sin\phi$$ .
 
== Flectors ==
 
The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$, a [[flector]] $$\mathbf F$$ has the general form
 
:$$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ .


A flector represents a transflection with respect to the line $$f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12}$$. When the line is unitized, $$f_w$$ is half the translation distance parallel to the line.
* [[Join and meet]]

Revision as of 00:56, 27 August 2023

Projections and antiprojections of one geometric object onto another can be accomplished using the connect and meet operations as described below.

The formulas on this page are general and do not require the geometric objects to be unitized. Most of them become simpler if unitization can be assumed.

Projection

The geometric projection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula

$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf x) \vee \mathbf y$$ .

Projections involving points, lines, and planes in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.

Projection Formula Illustration
Projection of point $$\mathbf p$$ onto plane $$\mathbf g$$.

$$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \mathbf g = (g_x^2 + g_y^2 + g_z^2)\mathbf p - (g_xp_x + g_yp_y + g_zp_z + g_wp_w)(g_x \mathbf e_1 + g_y \mathbf e_2 + g_z \mathbf e_3)$$

Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$.

$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf p) \vee \boldsymbol l =\, &(l_{vx} p_x + l_{vy} p_y + l_{vz} p_z)\mathbf v \\ +\, &(l_{vy} l_{mz} - l_{vz} l_{my})p_w \mathbf e_1 \\ +\, &(l_{vz} l_{mx} - l_{vx} l_{mz})p_w \mathbf e_2 \\ +\, &(l_{vx} l_{my} - l_{vy} l_{mx})p_w \mathbf e_3 \\ +\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)p_w \mathbf e_4\end{split}$$

Projection of line $$\boldsymbol l$$ onto plane $$\mathbf g$$.

$$\begin{split}(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \boldsymbol l) \vee \mathbf g =\, &(g_x^2 + g_y^2 + g_z^2)(l_{vx} \mathbf e_{41} + l_{vy} \mathbf e_{42} + l_{vz} \mathbf e_{43}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(g_x \mathbf e_{41} + g_y \mathbf e_{42} + g_z \mathbf e_{43}) \\ +\, &(g_x l_{mx} + g_y l_{my} + g_z l_{mz})(g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}) \\ -\, &(g_y l_{vz} - g_z l_{vy})g_w \mathbf e_{23} - (g_z l_{vx} - g_x l_{vz})g_w \mathbf e_{31} - (g_x l_{vy} - g_y l_{vx})g_w \mathbf e_{12}\end{split}$$

Antiprojection

The geometric antiprojection of an object $$\mathbf x$$ onto an object $$\mathbf y$$ is given by the general formula

$$(\mathbf y^\unicode["segoe ui symbol"]{x2605} \vee \mathbf x) \wedge \mathbf y$$ .

Antiprojections involving points, lines, and planes in the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$ are shown in the following table.

Antiprojection Formula Illustration
Antiprojection of plane $$\mathbf g$$ onto point $$\mathbf p$$.

$$(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \mathbf p = g_xp_w^2 \mathbf e_{423} + g_yp_w^2 \mathbf e_{431} + g_zp_w^2 \mathbf e_{412} - (g_xp_x + g_yp_y + g_zp_z)p_w \mathbf e_{321}$$

Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$.

$$\begin{split}(\mathbf p^\unicode["segoe ui symbol"]{x2605} \vee \boldsymbol l) \wedge \mathbf p =\, &l_{vx} p_w^2 \mathbf e_{41} + l_{vy} p_w^2 \mathbf e_{42} + l_{vz} p_w^2 \mathbf e_{43} \\ +\, &(p_y l_{vz} - p_z l_{vy})p_w \mathbf e_{23} + (p_z l_{vx} - p_x l_{vz})p_w \mathbf e_{31} + (p_x l_{vy} - p_y l_{vx})p_w \mathbf e_{12}\end{split}$$

Antiprojection of plane $$\mathbf g$$ onto line $$\boldsymbol l$$.

$$\begin{split}(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \vee \mathbf g) \wedge \boldsymbol l =\, &(l_{vx}^2 + l_{vy}^2 + l_{vz}^2)(g_x \mathbf e_{423} + g_y \mathbf e_{431} + g_z \mathbf e_{412}) \\ -\, &(g_x l_{vx} + g_y l_{vy} + g_z l_{vz})(l_{vx} \mathbf e_{423} + l_{vy} \mathbf e_{431} + l_{vz} \mathbf e_{412}) \\ +\, &(g_x l_{my} l_{vz} - g_x l_{mz} l_{vy} + g_y l_{mz} l_{vx} - g_y l_{mx} l_{vz} + g_z l_{mx} l_{vy} - g_z l_{my} l_{vx}) \mathbf e_{321}\end{split}$$

Projection of Origin

When a point $$\mathbf p$$ is projected onto another geometry, the result can be interpreted as the point on that geometry that is closest to the original point $$\mathbf p$$. In the particular case that $$\mathbf p = \mathbf e_4$$, which is the unitized origin, the projection finds the point on a geometry that is closest to the origin. Specific formulas are listed in the following table.

Projection Formula Description
$$(\mathbf g^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \mathbf g = -g_xg_w \mathbf e_1 - g_yg_w \mathbf e_2 - g_zg_w \mathbf e_3 + (g_x^2 + g_y^2 + g_z^2)\mathbf e_4$$ Point closest to the origin on the plane $$\mathbf g$$.
$$(\boldsymbol l^\unicode["segoe ui symbol"]{x2605} \wedge \mathbf e_4) \vee \boldsymbol l = (l_{vy} l_{mz} - l_{vz} l_{my})\mathbf e_1 + (l_{vz} l_{mx} - l_{vx} l_{mz})\mathbf e_2 + (l_{vx} l_{my} - l_{vy} l_{mx})\mathbf e_3 + (l_{vx}^2 + l_{vy}^2 + l_{vz}^2)\mathbf e_4$$ Point closest to the origin on the line $$\boldsymbol l$$.

Antiprojection of Horizon

Symmetrically to the projection of the origin, the horizon $$\mathbf g = \mathbf e_{321}$$ (the plane at infinity) can be antiprojected onto a point or line using the connect operation with the antidual instead of the dual. This operation finds the plane containing the geometry that is farthest from the origin. Specific formulas are listed in the following table.

Antiprojection Formula Description
$$(\mathbf p^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \mathbf p = p_xp_w \mathbf e_{423} + p_yp_w \mathbf e_{431} + p_zp_w \mathbf e_{412} - (p_x^2 + p_y^2 + p_z^2)\mathbf e_{321}$$ Plane farthest from the origin containing the point $$\mathbf p$$.
$$(\boldsymbol l^\unicode["segoe ui symbol"]{x2606} \vee \mathbf e_{321}) \wedge \boldsymbol l = (l_{my} l_{vz} - l_{mz} l_{vy})\mathbf e_{423} + (l_{mz} l_{vx} - l_{mx} l_{vz})\mathbf e_{431} + (l_{mx} l_{vy} - l_{my} l_{vx})\mathbf e_{412} + (l_{mx}^2 + l_{my}^2 + l_{mz}^2)\mathbf e_{321}$$ Plane farthest from the origin containing the line $$\boldsymbol l$$.

See Also