In a few previous posts I wrote about “kissing sets” of four mutually tangent circles, and the fact that their signed bends satisfy Descartes’ Theorem,
(Remember that the signed bend of a circle is like the curvature , except that if one circle contains the other circles inside it, we give the outer circle a negative bend.)
As I explained previously, if we have the bends of three mutually tangent circles, we can compute the possible bends of a fourth circle using the formula , where is the sum of the other bends and
Moreover, the two solutions for have the property that
so if we have one of them we can easily “flip” to the other one. Doing these repeated “flips” results in an infinite tree of kissing sets, and drawing all of them (until they get too tiny to draw) results in an Apollonian gasket.
But the bend of a circle only tells us how big it is—how do we decide where to draw the circles?
In their paper “Beyond the Descartes Circle Theorem”, Jeffrey Lagarias, Colin Mallows, and Allan Wilks prove the following remarkable theorem. Let denote the signed bend of circle as before. Now let denote the center of circle expressed as a complex number. For example, if circle has its center at the point , then . Now here is the theorem:
That is, the products of the signed bend and complex center of each circle also satisfy Descartes’ Theorem! So for each circle we just keep track of the signed bend as well as the product of the signed bend and the center. For each operation we compute the same formula twice, once for the bends and once for the bend-center products. To recover the center of a circle, just divide the bend-center product by the bend. And voila!
As a result of this beautiful theorem, the code to generate the above picture is very short—we just have to implement a few formulas and apply them to both bends and bend-center products, and then recursively generate the tree of kissing sets I explained in a previous post.
I really wish I could explain the proof of this theorem, but alas, I do not understand it. Lagarias et al. go on to generalize the theorem four or five more times—the final theorem involves a matrix version of the equation for kissing sets of arbitrary -dimensional hyperspheres in spherical space, or something like that—and then prove the most general version using some sophisticated, abstract machinery. The generalized theorem implies the others, so it is technically a proof of the version of Descartes’ Theorem for bend-center products, but it doesn’t give much intuition into why it is true!