Message Boards Message Boards

[GIF] :eyes: (Infinite Steiner chain)

Infinite Steiner chain

:eyes:

We're talking about conformal transformations in my complex analysis class, and I decided to show how to construct a Steiner chain for two tangent circles using conformal transformations. The map $f(z) = \frac{4}{z}$ sends the circles $\{z : |z-1| = 1\}$ and $\{z: |z-2|=2\}$ to the lines $\{z: \operatorname{Re}(z) = 2\}$ and $\{z:\operatorname{Re}(z) = 1\}$, respectively. Of course it is quite easy to construct infinitely many circles tangent to these two lines:

Chain of congruent circles

I just had a static image, but then while I was showing it to the class I decided to animate it on the fly, which I fortunately didn't screw up.

Anyway, here's the code (of course, it's more intuitive to use ParametricPlot, but I ended up making the circles with Polygon so that I could easily fill them in with a different color):

With[{cols = RGBColor /@ {"#e5e7de", "#f54123", "#0b3536"}},
 Manipulate[
  Graphics[
   {EdgeForm[None], cols[[1]], Disk[{2, 0}, 2], cols[[-1]], 
    Disk[{1, 0}, 1], cols[[2]],
    Table[
     Polygon[
      Table[ReIm[4/(3/2 + I (y + s) + 1/2 E^(I ?))], {?, 0., 2 ?, 2 ?/200}]],
     {y, -100, 100}]},
   ImageSize -> 540, Background -> cols[[-1]], 
   PlotRange -> {{-.6, 4.6}, {-2.6, 2.6}}],
  {s, 0, 1}]
 ]
4 Replies

enter image description here - Congratulations! This post is now featured in our Staff Pick column as distinguished by a badge on your profile of a Featured Contributor! Thank you, keep it coming!

POSTED BY: EDITORIAL BOARD
Posted 5 years ago

Very nice.

In fact, with a little more algebraic work (in my case, I used GroebnerBasis[] to help me), one can redo this to use Disk[] instead of Polygon[]:

With[{cols = RGBColor /@ {"#e5e7de", "#f54123", "#0b3536"}}, 
     Manipulate[Graphics[{EdgeForm[], cols[[1]], Disk[{2, 0}, 2],
                          cols[[-1]], Disk[{1, 0}, 1], cols[[2]], 
                          Table[Disk[{6, -4 (s + y)}/(2 + (s + y)^2), 
                                     2/(2 + (s + y)^2)], {y, -100, 100}]},
                         ImageSize -> 540, Background -> cols[[-1]],
                         PlotRange -> {{-.6, 4.6}, {-2.6, 2.6}}], {s, 0, 1}]]
POSTED BY: J. M.

Apparently emoji are not supported here? I tried to post this with the actual eyes emoji rather than ":eyes:", but got a "Message board not available" error.

/cc @Vitaliy Kaurov

Beautiful art, @Clayton, as usual, thanks for sharing! I will look into the emoji situation, thanks for the note.

POSTED BY: Vitaliy Kaurov
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract