Terminology

Most of this terminology is fairly standard, and you may only need to skim this section. But do read my definitions of the terms dim(P) and D(P) for a polytope P because these are referred to frequently in the rest of the paper.

R^n:

The usual n-dimensional vector space over the field of real numbers. The first four coordinates have traditionally been called, x, y, z, and w. R^n will also be called "n-space".

Convex:

A subset of R^n is called convex if given any two points in the set, the line segment between those two points is also contained by the set. A sphere is convex, as is a triangle, as is R^n.

Polytopes and Faces:

Polytopes are the generalization of polygons and polyhedra: a polygon is a two dimensional polytope; a polyhedron is a three dimensional polytope. One dimensional polytopes are line segments; zero dimensional polytopes are just points. The dimensionality of a polytope is defined by the dimension of the volume it encloses. "n-polytope" is short for "n dimensional polytope".

Formally, a convex n-polytope is a finite intersection of closed half-spaces of R^n such that the intersection has finite non-zero volume in R^n. An example of a closed half-space in R^2 is { (x,y) | y >= 0 }. This half-space does not define a polytope because the 2-d volume is not finite. The intersection of { (x,y) | y >= 0 } with { (x,y) | y <= 0 } does not define a polytope because the 2-d volume is zero. But the following closed half-spaces intersect to form a square:

Non-convex polytopes can be expressed as connected unions of convex polytopes of the same dimension.

For me, the important thing about polytopes is that the boundary, the "skin", of an n-polytope is a collection of (n-1)-polytopes. These (n-1)-polytopes are called the faces of the n-polytope (note that faces need not be 2 dimensional, as they are in common usage of the term). For instance; a hypercube's faces are 8 cubes; a cube's faces are 6 squares; a square's faces are 4 line segments, a line segment's faces are two vertices; vertices have no faces. Faces are themselves polytopes, and often, a given polytope under consideration is in fact a face of some other polytope, so in this report the terms "face" and "polytope" may end up being used somewhat interchangeably.

(My use of the word "boundary" in the above agrees with the strict topological sense: An n dimensional polytope P is closed in R^n, being a finite intersection of closed half-spaces. So its boundary is P - Int P, where Int P is the interior of P, the union of all open sets contained in P).

k-subspace, k-flat:

"k-subspace" is short for "k dimensional subspace", which is the set of points spanned by k linearly independent vectors which lie in some other vector space which is known from context. A k-flat is any translation of a k-subspace. That is, the k-subspace must contain the origin of the vector space, the k-flat need not. So { (x,y,z) | y = x } is a 2-subspace of R^3; { (x,y,z) | y = x + 2 } is 2-flat in R^3.

dim(P); D(P):

Let P be some polytope. dim(P) is simply the dimension of the polytope. To define D(P) we need to give first fix coordinates for each of the vertices of P and thereby give P some position and orientation in R^n. Then let D(P) to be the integer m such that P is contained in R^m and is not contained by R^k for any k < m. One can see that dim(P) <= D(P). Also, note that unlike dim(P), D(P) is not is property of the polytope. It is only a property of the polytope's position and orientation; it tells us something about the dimension of the space that the polytope occupies. Here's an illustration of how D(P) and dim(P) can differ:
D(P) != dim(P)

Projections:

Call a linear transformation T of R^n a projection if Let P be a polytope, let n = D(P). Then define a projection of P to be the image of P under some projection T of R^n. This is just a formal way of saying that a projection "squashes" the polytope one dimension lower, though retaining some of the face structure.
demo projection
Strictly speaking, then, the perspective transformations used in converting a 3-d scene into a 2-d perspective rendering are not projections. Although these transformations are "linear" in the sense that lines in 3-space are mapped to lines on the screen, the transformation is not linear in the algebraic sense of T(a+b) = T(a) + T(b). Even so, it is reasonable to refer to such transformations as perspective projections.

Slices vs. Cross-sections:

(I am imposing a more specific meaning on these terms than they have normally, but I needed terms for these specific meanings, and "slice" and "cross-section" seemed as good as any.)

Cross-sections:

Let P be a polytope, let n = D(P). A cross-section of a P is the intersection of P with an (n-1)-flat. This intersection may be the null set. For convex polytopes, the cross-section can be formed as follows:
  1. intersect all the half-spaces of R^n with the (n-1)-flat
  2. intersect all the intersections from step 1.
Since the intersections formed in step 1 are either the whole (n-1)-flat, a half-space of R^(n-1), or the null set, it follows that the cross-section of a convex polytope is either the null set or another convex polytope. Some cross-sections of cubes are 4-gons:
demo cross-section

Slices:

A slice is a generalization of a cross-section. Let P be a polytope, let n = D(P). A slice of P is the intersection of P with a k-flat for any k < n, not necessarily k = n-1. "k-slice" is short for "intersection with a k-flat". Here a 1-slice is being taken in a cube, resulting in a line segment:
demo slice

(back to Contents)
(on to Data Structure)