Steiner Circles

When you project a mesh sphere onto the plane using stereographic projection, where the sphere’s North and South poles intersect the plane, you get what are known as Steiner Circles.

I used some of my older syntax to build this code because the syntax is more concise for a short article.

The code for this particular drawing is generated by these 33 lines of code.

\documentclass[tikz, border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
    \tdplotsetmaincoords{65}{165}
    \begin{tikzpicture}[tdplot_main_coords]
        \draw[tdplot_screen_coords] (0,0) circle [radius=1];
        \foreach \t in {0, 10, ..., 350}{
            \tdplotsetrotatedcoords{90}{\t}{0}
            \draw[tdplot_rotated_coords,very thin] (0,0) circle [radius=1];
            \tdplotsetrotatedcoords{180}{90}{0}
            \draw[tdplot_rotated_coords,very thin] (0,0,{sin(\t)}) circle [radius={cos(\t)}];
        }
        \clip[tdplot_screen_coords] (-5,-3) rectangle (5,3);
        \draw[tdplot_screen_coords,white] (-4.9,-2.9) rectangle (4.9,2.9);
        \foreach \k in {10,20,...,80}{
            % steiner circles on the plane
            \draw[] ({1/cos(\k)},0) circle [radius={sqrt(1/(cos(\k)^2)-cos(\k))}];
            \draw[] (0,{-sin(\k)/cos(\k)}) circle [radius={1/cos(\k)}];
        }
        \foreach \k in {100,110,...,170}{
            % steiner circles on the plane
            \draw[] ({1/cos(\k)},0) circle [radius={sqrt(1/(abs(cos(\k))^2)-abs(cos(\k)))}];
            \draw[] (0,{-sin(\k)/cos(\k)}) circle [radius={1/cos(\k)}];
        }
        \draw[] (0,0) circle [radius=1]; % central steiner circle
        \draw[] (0,-7,0) -- (0,7,0); % circle at infinity
        \draw[] (-7,0,0) -- (7,0,0); % circle at infinity
        % axes
        \draw[-latex,thick] (-2,0,0) -- (2,0,0) node[pos=1,below left]{$x,\xi$}; % x-axis
        \draw[-latex,thick] (0,-3.5,0) -- (0,3.5,0) node[pos=1,below right]{$y,\eta$}; % y-axis
        \draw[-latex,thick] (0,0,-2) -- (0,0,1.5) node[pos=1,above right]{$z,\zeta$}; % z-axis
    \end{tikzpicture}
\end{document}

When I actually make animations of Mobius Transformations, I use a much more complicated setup, which is much too long for the code limitations on TikZ.net.

To see how it’s done, check out some of the codes on my GitHub, in particular, https://github.com/Pseudonym321/LaTeX_Repository/blob/master1/TikZ/Python%20Scripts/spherical_mobius_transformation_with_loxodrome.py.

Leave a Reply

Your email address will not be published.