It feels slightly weird to be name-checked by Clayton at the outset. :) I will try hard at this.
First, a preliminary subroutine (whose derivation was slightly unwieldy even with Mathematica at hand):
moebiusDisk[{{a_, b_}, {c_, d_}}, {z0_, r_}] := With[{den = Abs[c z0 + d]^2 - Abs[r c]^2},
Disk[ReIm[((a z0 + b) Conjugate[c z0 + d] - a Conjugate[c] r^2)/den], r Abs[b c - a d]/den]]
which, as might be ascertained, will generate a new Disk[]
object corresponding to the Möbius transformation of Disk[ReIm[z0], r]
.
With this, we can now write a Manipulate[]
version:
With[{?1 = 2., ?2 = 2. I, z? = 8.5 Exp[I ?/3], h = 1/50,
cols = RGBColor /@ {"#f3e551", "#add85d", "#65bcb7", "#5d8cd2",
"#c374af", "#e2574d", "#e2762f", "#0D2C54"}},
Manipulate[Graphics[
Table[If[! (MatchQ[a, -1 | 0] && MatchQ[b, 7 | 8 | 9]),
{cols[[Mod[b, 7, 1]]], moebiusDisk[{{?1 + ?2 - z?, -?1 ?2}, {1., -z?}},
{t + a + b Exp[? I/3.], 0.5}]},
Nothing], {a, -35, 13}, {b, -30, 18}],
PlotRange -> 4, ImageSize -> 540, Background -> cols[[-1]]],
{t, 0, 1 - h, h}, SaveDefinitions -> True]]