Charting the Torus

Torus is the formal name for the surface often described as that of a doughnut; but since quite a log of doughnuts are in fact simpler lumps (with cavities within them, typically filled with jam, icing or sauce), that should really be talking about the specific subtype that's called a ring doughnut, and even that involves ignoring the fact that it may well also have a cavity within it, that might otherwise be counted as contributing to the boundary of the object. However, as the qualifier ring hints, there is another familiar object we can use to describe this shape: the surface of a ring. Perhaps better to visualise (given that rings are usually much thinner in one direction than the other) would be a car-tyre (of course, any tyre will do, but those of cars and trucks are fatter in proportion to their circumference than those of bicycles, for example), with the valve smoothed away of course.

In general the n-dimensional Torus, T(n), is simply the cartesian product of n copies of the one-torus, T(1), better known as a circle (a.k.a. S(1), the one-sphere); but what's usually meant by Torus, when the dimension isn't specified, is the two-torus, T(2), visualised by an embedding of it in three-dimensional space. One obvious way to do such an embedding is to have a circle of (big) radius R and, at each point of it, construct a circle, of (smaller) radius r, about that point in the plane perpendicular to it at that point. If we take the plane of the first circle as our first two co-ordinates, that results in a parameterisation of the torus as:

The parts of this closest to and furthest from the origin (centre) are the circles with typical points (R −r).[Cos(u), Sin(u)] and (R +r).[Cos(u), Sin(u)]; if we make the inner one of these equal to the cross-section's radius, r, we get R = 2.r and can write our typical point as simply r.[(Cos(v) +2).Cos(u), (Cos(v) +2).Sin(u), Sin(v)].

A rectangle with opposite sides identified

If you look at the above embedding, you might notice that there is a simpler representation of the torus lurking in the pair of angles we used as input to the function. Each of the functions Sin and Cos is periodic, with period one turn, so any point of the torus above is actually represented not only be the pair of angles you might have used to generate it but also by the result of adding any whole number of turns to either angle, or to each.

Indeed, although we can represent T(1) by the circle (: r.[Cos(u), Sin(u)] ←u :{angles}) in a two-dimensional space, we can equally represent T(1) by {angles modulo turn}, the one-dimensional space of angles as understood via treating two angles as equivalent if they differ by a whole number of turns. This equivalence is natural to angles (even though, as is apparent when winding up a clock or winching up an anchor, there are contexts where turning something through several whole turns really does have a difference) and, indeed, often taken for granted when considering {angles}. T(2) as square with opposite edges identified. v v 0.turn −turn/4 turn/4 u u 0.turn turn/4 −turn/4 turn/2 −turn/2

The representation of angles, modulo turn, as a continuum range then requires a range of width one turn, between two equivalent angles. There are two particularly common choices for which range to use in this regard: the range from 0.turn to 1.turn is one common choice; the other is the range from −turn/2 to +turn/2. I'll be using the range between ±turn/2 below for its relative symmetry.

When we consider {[u, v]: u, v are angles} with angles understood modulo this equivalence, we in fact get a perfectly good representation of T(2) as a simple square, with opposite edges identified. The representation given above in three dimensions is just the result of rolling that up into a tube to implement the identification of one pair of edges and then bending the tube round into a ring to identify its end-loops, that the other pair of edges were turned into by the initial rolling. None the less, we can equally just represent it as a square, with opposite edges treated as synonymous. Note that a line on which one of u, v is constant and the other varies over its full range is a circle in the earlier three-dimensional representation; and is, indeed, an image of T(1), whose cyclic nature makes it natural to call its images loops and the geometrically everywhere-the-same ones circles.

The punctured (and stretched) torus

Just as puncturing a sphere and projecting the remainder outwards can map all but one point of a sphere to the two-dimensional plane, we can puncture a torus and map the neighbourhood of the puncture to the outer reaches of that two-dimensional plane, with the topology of the rest of the torus then being localised to a region in which we'll naturally want to pick the centre of our co-ordinates. This region looks somewhat like an idealized version of the land-surface where a bridge crosses a stream, or a stream runs through a tunnel under a road. So next I want to find a parameterisation of a surface of this form, that ideally has some nice symmetries.

For this I need to embed {[u, v]: u, v are angles mod turn} in (list ({reals}: |3)}, with coordinates [x, y, z], in some way that maps a neighbourhood of [turn/2, turn/2] to a neighbourhood of infinity in the [x, y, 0] plane. We can take z = Cos(v) −Cos(u) and map [u, 0] to [Sin(u), 0, 1 −Cos(u)], [0, v] to [0, Sin(v), Cos(v) −1]. That maps two of the circles round our torus to actual circles, with the [u, v] = [0, 0] origin nicely mapped to the [x, y, z] = [0, 0, 0] one. This, in turn, lets us map the u = ±v diagonals to the x = ±y diagonals of the z = 0 plane.

I'm still working on how to do the rest of this.


Valid CSSValid HTML 5 Written by Eddy.