The Orbit of Triangles 

Consider an arbitrary nonequilateral triangle with edge lengths a, b, and c. Place the edge of length a on the segment [0,a] of the xaxis of a Cartesian coordinate system and mark the location of the opposite vertex. Then place the edge of length b on the xaxis at [0,b] mark the location of the opposite vertex. Finally, place the edge of length c on the xaxis at [0,c] and mark the location of the opposite vertex. The three marks constitute a new triangle, with edge lengths a', b', and c'. 


This process can be repeated indefinitely. At each stage it’s convenient to normalize the size of the triangle by magnifying or shrinking it so the perimeter has length 1. The sequence of triangles produced by iteration of this procedure then consists of a sequence of triples {a,b,c} with a + b + c = 1. Taking a,b,c as Cartesian coordinates, each triangular shape can be plotted in threedimensional space, and the condition a + b + c = 1 implies that all the points fall on a single plane. The attractor of these points is a beautiful closed curve that somewhat resembles a trefoil knot, as shown below. 


It should be noted that this iteration is sensitive to the choice of permutations for the edge lengths. In some implementations the constructed triangles degenerate into straight lines, so it’s important to select the right permutation. To make the construction of these points explicit, we begin by describing how to compute the raw vertices of the new triangle from the edge lengths a,b,c of any given triangle. The first vertex is found by placing the edge length “a” on the x axis as shown below. 


By Pythagoras’ theorem we have 

_{} 

Solving these equations for x_{a} and y_{a}, we get 

_{} 

By cyclic permutation of the variables, we also have the coordinates of the other two vertices of the new triangle 

_{} 

Letting L_{ab} denote the length of the edge from the vertex at x_{a},y_{a} to the vertex at x_{b},y_{b}, we can now compute 

_{} 

The values of y_{a} and y_{b} are defined in terms of square roots, and the above expression contains a term of the form 2y_{a}y_{b}, so we might expect the result, when expressed in terms of the original edge lengths a,b,c, to involve a square root inside the square root. However, notice that the y_{a} and y_{b} coordinates represent the heights of the original triangle on the respective bases, so we have 

_{} 

where A is the area of the original triangle, and therefore by Heron’s formula 

_{} 

Making use of this fact, we can insert the previous expression for the coordinates and simplify to arrive at the length of the edge of the new triangle 

_{} 

By cyclic permutation of the variables, we arrive at the other two edge lengths 

_{} 

These are the edge lengths of the new triangle (prior to normalization), but we have six choices for how to assign these values to the new set of edge lengths which we will call a', b', and c'. These choices are shown below 

_{} 

Choices 1, 3, and 5 each produce the "trefoil attractor". If we choose 2 or 4 the resulting iteration converges on a 3cycle of segments of length {0.309016, 0.190983, 0.500000}, which corresponds to a degenerate triangle with three colinear vertices, one of which cuts the segment connecting the other two in the "golden proportion" 1.61803.... If we choose permutation 6 the sequence converges on a 1cycle of this same "golden" line segment. 

Taking choice 1, and normalizing the edge lengths, we have the iteration 

_{} 

Viewing these values as the Cartesian coordinates of a point in threedimensional space, and noting that a' + b' + c' = 1, we see that the points all fall in a single plane. We can transform from a,b,c to coordinates in a single plane simply by rotating the points {a,b,c} first about the b axis using the transformation X = Aa  Bc, Y = b, Z = Ba + Ac with A^{2} + B^{2} = 1, and then rotating about the X axis by the transformation x = X, y = aY – bZ, z = bY + az with a^{2} + b^{2} = 1. The composition of these is 

_{} 

We want all the points to have the same value of z for any a,b,c, so we must have b = aA = aB. Thus we have b^{2} = a^{2}A^{2} and b^{2} = a^{2}B^{2}, from which we get 2b^{2} = a^{2}, and hence 3b^{2} = 1 and 3a^{2} = 2. It follows that A^{2} = B^{2} = 1/2. Taking the positive roots for all these coefficients, we have the total transformation 

_{} 

This gives the "trefoil attractor" described above. An enlarged image of this locus is shown below. 


If we expand the view of this locus, we find that each of the curves actually splits into multiple distinct curves, each of which splits into multiple curves on even closer examination, and so on. 
