Learn · 4 of 6

Geometric Primitives

Constructing lines, circles, planes and spheres by spanning points with the outer product, and the projection and meet operators.

Points are the basic primitive in CGA; everything else is built from them by spanning with the outer product. Given conformal points, their outer product

is a primitive whose type depends on how many points were used and whether the point at infinity is among them.

The constructions

Line — two points on it, plus the point at infinity:

Circle — any three distinct points on its orbit:

Plane — three points and the point at infinity:

Sphere — four points:

The pattern is worth stating plainly: a circle and a line are the same construction, differing only in whether one of the spanning points is at infinity. A line is a circle through infinity, and a plane is a sphere through infinity. Curved and flat objects are not separate cases in this algebra — they are the same objects with different points.

Primitives are single-grade objects, and each occupies only a sparse subset of the 32 basis blades. Transformations, by contrast, are mixed-grade.

Operators

Because primitives are elements of the algebra, they can appear in algebraic expressions that stay geometrically meaningful.

Projection

Projecting a point onto any primitive uses one formula:

The same expression projects onto a line, a plane, a circle or a sphere. There is no separate point-to-line and point-to-plane routine.

The meet

Intersections come from the meet operator:

This is where the uniformity pays off most visibly, because no edge cases are required. Take a line meeting a sphere. There are three geometric situations, and the result encodes which one occurred:

Nothing in the computation branched. The same holds for a line and a circle: there is no need to test in advance whether it crosses twice, touches, or misses. The meet returns a meaningful primitive in every case, and the kind of answer tells you the configuration.

This is a concrete example of a general theme. In a conventional formulation the special cases live in the code as conditionals, and each one is a place where a controller can fail or a derivative can be undefined. Here they live in the algebra.

Reflections

Primitives can also be used directly as operators. Reflecting in a primitive produces rigid motions: two successive reflections in intersecting planes give a rotation, and in parallel planes give a translation. This is the geometric picture behind the transformations of the next page.

Next: transformations — rotors, translators, dilators and motors.