# Projective Geometric Algebra for 2D Space

## Introduction

Table 1. The 8 basis elements of the 3D projective geometric algebra.

In the three-dimensional projective 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 projective 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 projective 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 projective 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 projective 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 unitized 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 projective geometric algebra $$\mathcal G_{2,0,1}$$, a line $$\mathbf L$$ is a bivector having the general form

$$\mathbf 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 unitized 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$$.

## Bulk and Weight

The following table lists the bulk and weight for the main types in the 3D projective geometric algebra $$\mathcal G_{2,0,1}$$.

Type Definition Bulk Weight
Magnitude $$\mathbf z = x + y {\large\unicode{x1d7d9}}$$ $$\mathbf z_\unicode{x25CF} = x$$ $$\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 $$\mathbf L = L_x \mathbf e_{23} + L_y \mathbf e_{31} + L_z \mathbf e_{12}$$ $$\mathbf L_\unicode{x25CF} = L_z \mathbf e_{12}$$ $$\mathbf 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 G = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w$$ $$\mathbf G_\unicode{x25CF} = g_z \mathbf e_{12} + g_w$$ $$\mathbf G_\unicode{x25CB} = g_x \mathbf e_{23} + g_y \mathbf e_{31}$$

## Unitization

The following table lists the unitization conditions for the main types in the 3D projective geometric algebra $$\mathcal G_{2,0,1}$$.

Type Definition Unitization
Magnitude $$\mathbf z = x + 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 $$\mathbf 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 G = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w$$ $$g_x^2 + g_y^2 = 1$$

## Geometric Norm

The following table lists the bulk norms of the main types in the 3D projective geometric algebra $$\mathcal G_{2,0,1}$$.

Type Definition Bulk Norm
Magnitude $$\mathbf z = x + 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 $$\mathbf L = L_x \mathbf e_{23} + L_y \mathbf e_{31} + L_z \mathbf e_{12}$$ $$\left\Vert\mathbf 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 G = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w$$ $$\left\Vert\mathbf G\right\Vert_\unicode{x25CF} = \sqrt{g_z^2 + g_w^2}$$

The following table lists the weight norms of the main types in the 3D projective geometric algebra $$\mathcal G_{2,0,1}$$.

Type Definition Weight Norm
Magnitude $$\mathbf z = x + 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 $$\mathbf L = L_x \mathbf e_{23} + L_y \mathbf e_{31} + L_z \mathbf e_{12}$$ $$\left\Vert\mathbf 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 G = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w$$ $$\left\Vert\mathbf G\right\Vert_\unicode{x25CB} = {\large\unicode{x1D7D9}}\sqrt{g_x^2 + g_y^2}$$

The following table lists the unitized geometric norms of the main types in the 3D projective geometric algebra $$\mathcal G_{2,0,1}$$ after dropping the constant $${\large\unicode{x1D7D9}}$$ term.

Type Definition Geometric Norm Interpretation
Magnitude $$\mathbf z = x + 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 $$\mathbf L = L_x \mathbf e_{23} + L_y \mathbf e_{31} + L_z \mathbf e_{12}$$ $$\widehat{\left\Vert\mathbf L\right\Vert} = \dfrac{|L_z|}{\sqrt{L_x^2 + L_y^2}}$$ Perpendicular distance from the origin to the line $$\mathbf L$$.

Half the distance that the origin is moved by the flector $$\mathbf 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 G = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w$$ $$\widehat{\left\Vert\mathbf G\right\Vert} = \sqrt{\dfrac{g_z^2 + g_w^2}{g_x^2 + g_y^2}}$$ Half the distance that the origin is moved by the flector $$\mathbf G$$.

## 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$$
$$\mathbf 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 Commutator 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}$$ $$[\mathbf p, \mathbf q]^{\Large\unicode{x27D1}}_-$$ Line containing points $$\mathbf p$$ and $$\mathbf q$$.

Zero if $$\mathbf p$$ and $$\mathbf q$$ are coincident.

$$\mathbf 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$$ $$[\mathbf K, \mathbf L]^{\Large\unicode{x27C7}}_-$$ Point where lines $$\mathbf L$$ and $$\mathbf K$$ intersect.

Point at infinity if $$\mathbf L$$ and $$\mathbf K$$ are parallel.

$$\underline{\mathbf L_\smash{\unicode{x25CB}}} \wedge \mathbf p = L_yp_z\mathbf e_{23} - L_xp_z\mathbf e_{31} + (L_xp_y - L_yp_x)\mathbf e_{12}$$ $$-[\mathbf p, \mathbf L]^{\Large\unicode{x27C7}}_+$$ Line perpendicular to line $$\mathbf 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{\mathbf L_\smash{\unicode{x25CB}}} \wedge \mathbf p\right) \vee \mathbf 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 $$\mathbf L$$.
$$\left(\underline{\mathbf p_\smash{\unicode{x25CB}}} \vee \mathbf 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 $$\mathbf L$$ onto point $$\mathbf p$$.

Projecting the origin onto a line gives us the following formula for the point on a line $$\mathbf L$$ closest to the origin.

$$\left(\underline{\mathbf L_\smash{\unicode{x25CB}}} \wedge \mathbf e_3\right) \vee \mathbf 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 projective 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 c$$ multiplied by $$\phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the point $$\mathbf c$$. The exponential form can be written as

$$\mathbf Q = \exp_\unicode{x27C7}(\phi{\large\unicode{x1D7D9}} \mathbin{\unicode{x27C7}} \mathbf c) = {\large\unicode{x1D7D9}}\cos\phi + \mathbf c\sin\phi$$ .

## Flectors

The set of all flectors corresponds to the set of all improper Euclidean isometries in two-dimensional space. In the 3D projective geometric algebra $$\mathcal G_{2,0,1}$$, a flector $$\mathbf G$$ has the general form

$$\mathbf G = g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12} + g_w$$ .

A flector represents a transflection with respect to the line $$g_x \mathbf e_{23} + g_y \mathbf e_{31} + g_z \mathbf e_{12}$$. When the line is unitized, $$g_w$$ is half the translation distance parallel to the line.