Rigid Geometric Algebra for 2D Space
Introduction
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.
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
- $$\mathbf v = v_x \mathbf e_1 + v_y \mathbf e_2 + v_z \mathbf e_3$$ .
There are three bivector basis elements named $$\mathbf e_{23}$$, $$\mathbf e_{31}$$, and $$\mathbf e_{12}$$ having two-dimensional extents.
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.
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.
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 −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$$.
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}$$.
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 $$\boldsymbol l$$ is a bivector having the general form
- $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_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 $$l_x^2 + l_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 $$l_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}$$.
Type | Definition | Bulk | Weight |
---|---|---|---|
Magnitude | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | $$\mathbf z_\unicode{x25CF} = x\mathbf 1$$ | $$\mathbf z_\unicode{x25CB} = y {\large\unicode{x1d7d9}}$$ |
Point | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | $$\mathbf p_\unicode{x25CF} = p_x \mathbf e_1 + p_y \mathbf e_2$$ | $$\mathbf p_\unicode{x25CB} = p_z \mathbf e_3$$ |
Line | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | $$\boldsymbol l_\unicode{x25CF} = l_z \mathbf e_{12}$$ | $$\boldsymbol l_\unicode{x25CB} = l_x \mathbf e_{23} + l_y \mathbf e_{31}$$ |
Motor | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | $$\mathbf Q_\unicode{x25CF} = q_x \mathbf e_{1} + q_y \mathbf e_{2}$$ | $$\mathbf Q_\unicode{x25CB} = q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ |
Flector | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | $$\mathbf F_\unicode{x25CF} = f_z \mathbf e_{12} + f_w \mathbf 1$$ | $$\mathbf F_\unicode{x25CB} = f_x \mathbf e_{23} + f_y \mathbf e_{31}$$ |
Unitization
The following table lists the unitization conditions for the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
Type | Definition | Unitization |
---|---|---|
Magnitude | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | $$y^2 = 1$$ |
Point | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | $$p_z^2 = 1$$ |
Line | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | $$l_x^2 + l_y^2 = 1$$ |
Motor | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | $$q_z^2 + q_w^2 = 1$$ |
Flector | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | $$f_x^2 + f_y^2 = 1$$ |
Geometric Norm
The following table lists the bulk norms of the main types in the 3D rigid geometric algebra $$\mathcal G_{2,0,1}$$.
Type | Definition | Bulk Norm |
---|---|---|
Magnitude | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CF} = |x|$$ |
Point | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CF} = \sqrt{p_x^2 + p_y^2}$$ |
Line | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CF} = |l_z|$$ |
Motor | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CF} = \sqrt{q_x^2 + q_y^2}$$ |
Flector | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | $$\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}$$.
Type | Definition | Weight Norm |
---|---|---|
Magnitude | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | $$\left\Vert\mathbf z\right\Vert_\unicode{x25CB} = |y|{\large\unicode{x1D7D9}}$$ |
Point | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | $$\left\Vert\mathbf p\right\Vert_\unicode{x25CB} = |p_z|{\large\unicode{x1D7D9}}$$ |
Line | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | $$\left\Vert\boldsymbol l\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{l_x^2 + l_y^2}$$ |
Motor | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | $$\left\Vert\mathbf Q\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{q_z^2 + q_w^2}$$ |
Flector | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | $$\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.
Type | Definition | Geometric Norm | Interpretation |
---|---|---|---|
Magnitude | $$\mathbf z = x\mathbf 1 + y {\large\unicode{x1d7d9}}$$ | $$\widehat{\left\Vert\mathbf z\right\Vert} = \dfrac{|x|}{|y|}$$ | A Euclidean distance. |
Point | $$\mathbf p = p_x \mathbf e_1 + p_y \mathbf e_2 + p_z \mathbf e_3$$ | $$\widehat{\left\Vert\mathbf p\right\Vert} = \dfrac{\sqrt{p_x^2 + p_y^2}}{|p_z|}$$ | Distance from the origin to the point $$\mathbf p$$.
Half the distance that the origin is moved by the motor $$\mathbf p$$. |
Line | $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$ | $$\widehat{\left\Vert\boldsymbol l\right\Vert} = \dfrac{|l_z|}{\sqrt{l_x^2 + l_y^2}}$$ | Perpendicular distance from the origin to the line $$\boldsymbol l$$.
Half the distance that the origin is moved by the flector $$\boldsymbol l$$. |
Motor | $$\mathbf Q = q_x \mathbf e_{1} + q_y \mathbf e_{2} + q_z \mathbf e_{3} + q_w {\large\unicode{x1d7d9}}$$ | $$\widehat{\left\Vert\mathbf Q\right\Vert} = \sqrt{\dfrac{q_x^2 + q_y^2}{q_z^2 + q_w^2}}$$ | Half the distance that the origin is moved by the motor $$\mathbf Q$$. |
Flector | $$\mathbf F = f_x \mathbf e_{23} + f_y \mathbf e_{31} + f_z \mathbf e_{12} + f_w \mathbf 1$$ | $$\widehat{\left\Vert\mathbf F\right\Vert} = \sqrt{\dfrac{f_z^2 + f_w^2}{f_x^2 + f_y^2}}$$ | Half the distance that the origin is moved by the flector $$\mathbf F$$. |
Join and Meet
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 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$$
- $$\boldsymbol l = l_x \mathbf e_{23} + l_y \mathbf e_{31} + l_z \mathbf e_{12}$$
- $$\mathbf k = k_x \mathbf e_{23} + k_y \mathbf e_{31} + k_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.
Formula | Description |
---|---|
$$\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}$$ | Line containing points $$\mathbf p$$ and $$\mathbf q$$.
Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident. |
$$\boldsymbol l \vee \mathbf k = (l_yk_z - k_yl_z)\mathbf e_1 + (l_zk_x - l_xk_z)\mathbf e_2 + (l_xk_y - l_yk_x)\mathbf e_3$$ | Point where lines $$\boldsymbol l$$ and $$\mathbf k$$ intersect.
Point at infinity if $$\boldsymbol l$$ and $$\mathbf k$$ are parallel. |
$$\boldsymbol l^* \wedge \mathbf p = -l_yp_z\mathbf e_{23} + l_xp_z\mathbf e_{31} + (l_yp_x - l_xp_y)\mathbf e_{12}$$ | Line perpendicular to line $$\boldsymbol l$$ passing through point $$\mathbf p$$. |
Projections
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.
Formula | Description |
---|---|
$$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \boldsymbol l = (l_x^2 + l_y^2)\mathbf p - (l_xp_x + l_yp_y + l_zp_z)(l_x \mathbf e_1 + l_y \mathbf e_2)$$ | Projection of point $$\mathbf p$$ onto line $$\boldsymbol l$$. |
$$\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \boldsymbol l\right) \wedge \mathbf p = l_xp_z^2 \mathbf e_{23} + l_yp_z^2 \mathbf e_{31} - (l_xp_x + l_yp_y)p_z \mathbf e_{12}$$ | Antiprojection of line $$\boldsymbol l$$ onto point $$\mathbf p$$. |
Projecting the origin onto a line gives us the following formula for the point on a line $$\boldsymbol l$$ closest to the origin.
- $$\left(\underline{\boldsymbol l_\smash{\unicode{x25CB}}} \wedge \mathbf e_3\right) \vee \boldsymbol l = -l_xl_z \mathbf e_1 - l_yl_z \mathbf e_2 + (l_x^2 + l_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(\underline{\mathbf p_\smash{\unicode{x25CF}}} \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.