[GIF] Interference (Stereographic projections of lesser circles)

circles24c.gif

Interference

This animation shows the stereographic images of two families of circles on the 2-sphere. Each family consists of concentric circles (or circles of latitude, if you like) centered on one of the points (-1/\sqrt{2},1/\sqrt{2},0) or (1/\sqrt{2},1/\sqrt{2},0). Since stereographic projection projection takes circles to circles, the images are also circles, but they’re no longer concentric.

It would have been cleaner to implement these as Circles rather than Polygons, but I didn’t have the patience to figure out the center and radius of each of the projected circles, so instead I just projected a bunch of points along each original circle and made the resulting points in the plane into a Polygon.

Here’s the code (note that the appearance of 0.001 is to avoid divide-by-zero errors):

Stereo[{x_, y_, z_}] := 1/(1 - z) {x, y};

DynamicModule[{p = Normalize /@ {{-1, 1, 0}, {1, 1, 0}}, b, n = 36, cols = {White, GrayLevel[.1]}},
 b = Orthogonalize[NullSpace[{#}]] & /@ p;
 Manipulate[
    Graphics[{FaceForm[None], 
      EdgeForm[Directive[Thickness[.006], Opacity[.4], cols[[1]]]], 
      Table[
        Polygon[Table[Stereo[Cos[r + s] p[[i]] + Sin[r + s] (Cos[t] b[[i, 1]] + Sin[t] b[[i, 2]])], 
          {t, 0., 2 Pi, 2 Pi/300}]], 
        {i, 1, 2}, {s, 0.001, Pi + 0.001 - Pi/n, Pi/n}]},
      PlotRange -> 2, ImageSize -> 540, Axes -> None, Background -> cols[[-1]]], 
     {r, 0., Pi/n - #, #}] &[Pi/(40 n)]
 ]
10 Likes

news-congrads-kkluyshnik-02-04-19.jpg – you have earned Featured Contributor Badge 2015-11-02_10-07-11.png
Your exceptional post has been selected for our editorial column Staff Picks http://wolfr.am/StaffPicks and Your Profile is now distinguished by a Featured Contributor Badge and is displayed on the Featured Contributor Board. Thank you!

I simply love this one! Mesmerizing. So many phantom shapes. The center does not seem to move but it does unnoticeably almost. It is actually an illusion maker: stare at this for a few minutes then look at the code below and it will start moving in the same way.

3 Likes