Risto A. Paju<p>As I keep studying the Apollonian gasket, I've now implemented the inversion approach on the CPU for finding the circle centres and radii. Now I can generate these arrays of eyes much faster, as the inversion is easier to parallelize. It's so fast that the bottleneck is now in the drawing stage.</p><p>The colours denote a kind of family tree of inversions: the 4 initial circles each have their own colour, and their inversion images retain the colour. The outer circle is not shown here, but its descendants show the colour that's distinct from the other 3.</p><p>I still needed something other than inversions for setting up the initial quartet, but I wanted find my own solution instead of relying on Descartes' theorem. The theorem actually comes in two parts: Rene's original theorem only deals with the radii, while the complex quadratic formula for finding the circle positions was only developed in the late 1990s.</p><p>Well, I found an alternative solution to the latter part, and it reduces to a pair of linear equations. It isn't particularly fast to compute, but I think it's easier to understand — it's basically junior high school math. In fact, it seems so basic that I can't be the first one to discover it.</p><p><a href="https://mathstodon.xyz/tags/eyecandy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>eyecandy</span></a> <a href="https://mathstodon.xyz/tags/apolloniancircles" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>apolloniancircles</span></a> <a href="https://mathstodon.xyz/tags/apolloniangasket" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>apolloniangasket</span></a> <a href="https://mathstodon.xyz/tags/iteratedfunctionsystem" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iteratedfunctionsystem</span></a> <a href="https://mathstodon.xyz/tags/inversion" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>inversion</span></a> <a href="https://mathstodon.xyz/tags/circleinversion" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>circleinversion</span></a> <a href="https://mathstodon.xyz/tags/geometricart" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>geometricart</span></a> <a href="https://mathstodon.xyz/tags/fractal" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fractal</span></a> <a href="https://mathstodon.xyz/tags/fractalart" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fractalart</span></a> <a href="https://mathstodon.xyz/tags/pythoncode" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>pythoncode</span></a> <a href="https://mathstodon.xyz/tags/opengl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>opengl</span></a> <a href="https://mathstodon.xyz/tags/algorithmicart" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>algorithmicart</span></a> <a href="https://mathstodon.xyz/tags/algorist" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>algorist</span></a> <a href="https://mathstodon.xyz/tags/mathart" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>mathart</span></a> <a href="https://mathstodon.xyz/tags/laskutaide" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>laskutaide</span></a> <a href="https://mathstodon.xyz/tags/ittaide" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ittaide</span></a> <a href="https://mathstodon.xyz/tags/kuavataide" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>kuavataide</span></a> <a href="https://mathstodon.xyz/tags/iterati" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iterati</span></a></p>