Barycentric subdivision
|
In geometry, the barycentric subdivision is a standard way of dividing an arbitrary convex polygon into triangles, a convex polyhedron into tetrahedra, or, in general, a convex polytope into simplices with the same dimension, by connecting the barycenters of their faces in a specific way.
The name is also used in topology for a similar operation on cell complexes. The result is topologically equivalent to that of the geometric operation, but the parts have arbitrary shape and size.
Both operations have a number of applications in mathematics and in geometric modeling, especially whenever some function or shape needs to be approximated piecewise, e.g. by a spline.
Contents |
Barycentric subdivision of a simplex
The barycentric subdivision (henceforth BCS) of an <math>n<math>-dimensional simplex <math>S<math> consists(n+1)! simplices. Each piece, with vertices <math>v_0,v_1,...,v_n<math>, can be associated with a permutation <math>p_0,p_1,...,p_n<math> of the vertices of <math>S<math>, in such a way that each vertex <math>v_i<math> is the barycenter of the points <math>p_0,p_1,...,p_i<math>.
In particular, the BCS of a single point (a 0-dimensional simplex) consists of that point itself. The BCS of a line segment (1-simplex) <math>S<math> consists of two smaller segments, each connecting one endpoint (0-dimensional face) of <math>S<math> to the midpoint of <math>S<math> itself (1-dimensional face).
The BCS of a triangle <math>S<math> divides it into six triangles; each part has one vertex <math>v_2<math> at the barycenter of <math>S<math>, another one <math>v_1<math> at the midpoint of some side, and the last one <math>v_0<math> at one of the original vertices.
The BCS of a tetrahedron <math>S<math> divides it into 24 tetrahedra; each part has one vertex at the center of <math>S<math>, one on some face, one along some edge, and the last one at some vertex of <math>S<math>.
In general, BCS of an <math>n<math>-dimensional simplex breaks it into
Barycentric subdivision of a convex polytope
Another way of defining the BCS of a simplex <math>S<math> is to associate each part to a sequence <math>F_0,F_1,...,F_n<math> of faces of <math>S<math>, with increasing dimensions, such that <math>F_i<math> is a facet of <math>F_{i+1}<math>, for <math>i<math> from 0 to <math>n-1<math>. Then each vertex <math>v_i<math> of the corresponding piece is the barycenter of face <math>F_i<math>.
This alternative definition can be extended to the BCS of an arbitrary <math>n<math>-dimensional convex polytope into a number of <math>n<math>-simplices. Thus the BCS of a pentagon <math>P<math>, for example, has 10 triangles: each triangle is associated to three elements <math>F_0,F_1,F_2<math> of <math>P<math> — respectively, a corner of <math>P<math>, a side of <math>P<math> incident to that corner, and <math>P<math> itself.
Similarly the BCS of a cube consists of 48 tetrahedra, each of them associated to a sequence <math>F_0,F_1,F_2,F_3<math> of nested elements — a vertex, an edge, a face, and the whole cube. Note that there are 8 choices for <math>F_0<math>, 3 for <math>F_1<math> (given <math>F_0<math>), and 2 for <math>F_2<math> (given <math>F_0,F_1<math>).
Barycentric subdivision in topology
In topology, the barycentric subdivision is defined for a cell complex. Informally, such object can be thought of an assemblage of one or more chunks of rubber (cells), each shaped like a convex polytope, which are glued to each other by their facets — possibly with much stretching and twisting.
The topological version of BCS replaces each cell by an assemblage of rubber simplices, likewise glued together by their facets and possibly deformed. The procedure is (1) select for each cell a deformation map that converts it into a geometric convex polytope, preserving its incidence and topological connections; (2) perform the geometric BCS on this polytope; and, then (3) map the resulting subdivision back to the original cells.
Applications
The barycentric subdivision is chiefly used to replace an arbitrarily complicated convex polytope or topological cell complex by an assemblage of pieces, all of them of bounded complexity (simplices, in fact). A typical application is modeling the shape of a car body by a spline — a piecewise-defined polynomial function. The algebra of such functions becomes much simpler and easier to program if each "piece" is a "topological triangle", i.e. is attached to exactly three other pieces. However, a human user may find it more natural to design the shape by joining patches with more liberal shapes and topologies. Barycentric subdivision is a convenient way to convert that "user-friendly" model into a "computer-friendly" one.
Repeated barycentric subdivision
When approximating a mathematical function or a surface by a spline, the accuracy of the approximation is usually determined by the piece size — the bigger the pieces, the larger the error. Thus it is often necessary to split large pieces into smaller ones, in order to achieve a prescribed accuracy.
In theory, BCS could be used for that purpose, since it has the property that the longest edge of any piece is smaller than the longest edge of the original polytope by a factor less than <math>n/(n + 1)<math>. Therefore, by applying BCS sufficiently many times, the largest edge can be made as small as desired.
However, in practice BCS is not well-suited for that purpose. For one thing, each application after the first one multiplies the number of simplices by <math>(n+1)!<math>. BCS also multiplies the degree of each original vertex by <math>n!<math>, and the degree of each edge by <math>(n-1)!<math>. Moreover, the BCS will split all simplices, even those that are already small enough. Finally, each BCS stage also makes the simplices not only smaller but "skinnier", i.e. it tends to increase their aspect ratio (the ratio between the longest and shortest edge). For all these reasons, in practice one rarely applies more than one round of BCS, and other subdivision schemes are used instead.
False barycentric subdivision
Sometimes the term "barycentric subdivision" is improperly used for any subdivision of a polytope <math>P<math> into simplices that have one vertex at the centroid of <math>P<math>, and the opposite facet on the boundary of <math>P<math>. While this property hold for the true barycentric subdivision, it also holds for other subdivisions which are not BCS.
For example, if one makes a straight cut from the barycenter of a triangle to each of its three corners, one obtains a subdivision into three triangles. Generalizing this idea, one obtains a schema for subdividing an <math>n<math>-dimensional simplex into <math>n+1<math> simplices. However, this subdivision is not the BCS.