Message Boards Message Boards

GROUPS:

[GIF] :eyes: (Infinite Steiner chain)

Posted 10 months ago
2549 Views
|
4 Replies
|
10 Total Likes
|

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

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 10 months 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.
Answer

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!

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