Group Abstract Group Abstract

Message Boards Message Boards

IFS for apollonian gaskets

Posted 10 years ago
POSTED BY: Roger L. Bagula
6 Replies
POSTED BY: Roger L. Bagula
POSTED BY: Roger L. Bagula

Question is out of my league, but perhaps this may come handy: Apollonian Gasket and The Circles of Descartes. There is also this and this:

enter image description here

POSTED BY: Sam Carrettie
Anonymous User
Anonymous User
Posted 7 years ago

This morning I found a way to get Kleinian groups limit sets for some of the uneven Apollonian coin packings: I have three good ones so far: my post online.

An uneven coin type Apollonian as a Bianchi -Clifford base: This kind of Apollonian disk has been a long term problem: I asked and no one knew a Kleinian group for this sort. of circle packing. I did extensive searches, nothing…

Kate Stange’s Bianchi group paper was my first real clue. I had to develop a whole new Blaschke disk-Banach space approach as an Clifford base Hilbert space to finally crack this mystery! The group uses (-3)^(1/4), the second Clifford base for -3 :

(* Apollonian gasket disk:mu=(-3)^(1/4)*)
mu = N[(-3)^(1/4)]/Sqrt[2]
a = {{1, 0}, {-2*mu, 1}}
A = Inverse[{{1, 0}, {-2*mu, 1}}]
b = {{1 - mu, mu}, {-mu, 1 + mu}}
B = Inverse[b]

The Clifford base Hilbert space of:

(-1)^(t/2^n)

lead to the Bianchi generalization of Hilbert spaces:

(-Prime[n])^(t/2^n)

and they all plotted to Prime[60].

As far as I know this approach in entirely new.

(* mathematica: using ![enter image description here][1]Paul Nylander's Limit set program*)

Clear[cr, cols, cr2, cr3, cr4, firstCols, s, s0]
allColors = ColorData["Legacy"][[3, 1]];
firstCols = {"White", "AliceBlue", "LightBlue" , "Cyan", 
   "ManganeseBlue", "DodgerBlue" , "Blue", "Magenta", "Purple", 
   "Pink", "Tomato", "Red", "DarkOrange", "Orange", 
   "DeepNaplesYellow", "Gold", "Banana", "Yellow", "LightYellow", 
   "Orange", "Pink", "LightPink", "Yellow", "LightYellow", 
   "LightPink", "White", "DeepNaplesYellow", "Orange", "DarkOrange", 
   "Tomato", "Red", "Tomato", "Pink", "LightPink", 
   "DeepNaplesYellow", "Orange", "DarkOrange", "Tomato", "White", 
   "Pink", "Banana", "LightBlue", "DodgerBlue", "Cyan", "White", 
   "Purple", "DarkOrchid", "Magenta", "ManganeseBlue", 
   "DeepNaplesYellow", "Orange", "DarkOrange", "Tomato", "GoldOchre", 
   "LightPink", "Magenta", "Green", "DarkOrchid", "LightSalmon", 
   "LightPink", "Sienna", "Green", "Mint", "DarkSlateGray", 
   "ManganeseBlue", "SlateGray", "DarkOrange", "MistyRose", 
   "DeepNaplesYellow", "GoldOchre", "SapGreen", "Yellow", "Yellow", 
   "Tomato", "DeepNaplesYellow", "DodgerBlue", "Cyan", "Red", "Blue", 
   "DeepNaplesYellow", "Green", "Magenta", "DarkOrchid", 
   "LightSalmon", "LightPink", "Sienna", "Green", "Mint", 
   "DarkSlateGray", "ManganeseBlue", "SlateGray", "DarkOrange", 
   "MistyRose", "DeepNaplesYellow", "GoldOchre", "SapGreen", "Yellow",
    "LimeGreen"};
cols = ColorData["Legacy", #] & /@ 
   Join[firstCols, Complement[allColors, firstCols]];
rotate[theta_] := {{Cos[theta], -Sin[theta]}, {Sin[theta], 
    Cos[theta]}};
cr[n_] := cr[n] = cols[[n]];
cr2[n_] := cr2[n] = cols[[n + 4]];
cr3[n_] := cr3[n] = cols[[n + 8]];
cr4[n_] := cr4[n] = cols[[n + 12]];
cr5[n_] := cr5[n] = cols[[n + 16]]
Clear[mu, a, b, A, B]
(* Apollonian gasket disk:mu=(-3)^(1/4)*)
mu = N[(-3)^(1/4)]/Sqrt[2]
a = {{1, 0}, {-2*mu, 1}}
A = Inverse[{{1, 0}, {-2*mu, 1}}]
b = {{1 - mu, mu}, {-mu, 1 + mu}}
B = Inverse[b]
Det[a]
Tr[a]
Det[b]
Tr[b]
Det[A]
Tr[A]
Det[B]
Tr[B]

Affine[{z1_, z2_}] := 0.000001 Round[(z1/z2)/0.000001];
Children[{z_, n_}] := {Affine[{a, b, A, B}[[#]].{z, 1}], #} & /@ 
   Delete[Range[4], {3, 4, 1, 2}[[n]]];
aa1 = {Re[#[[1]]], Im[#[[1]]]} & /@ 
   Nest[Union[Flatten[Children /@ #, 1]] &, 
    Table[{Affine[{a, b, A, B}[[i]].{0, 1}], i}, {i, 1, 4}], 13];
ll = Length[aa1]
Last[aa1]
aa = Delete[Union[aa1], Length[Union[aa1]]];
ListPlot[aa, AspectRatio -> Automatic, 
 PlotStyle -> {Black, PointSize[0.001]}, ImageSize -> 1000, 
 PlotRange -> All]


dlst = Table[
   Floor[1 + (1 + 
        Floor[4*Norm[aa[[i]]]])/(Abs[
         Cos[Arg[aa[[i, 1]] + I*aa[[i, 2]]]]] + 
        Abs[Sin[Arg[aa[[i, 1]] + I*aa[[i, 2]]]]])], {i, Length[aa]}];
Min[dlst]
Max[dlst]
ptlst = Point[Developer`ToPackedArray[aa], 
   VertexColors -> Developer`ToPackedArray[cr /@ dlst]];
g2 = Graphics[{PointSize[.001], ptlst}, AspectRatio -> Automatic, 
  ImageSize -> 1500, Background -> Black, PlotRange -> All]
(* endend limit set*)

(* Half plane to disk conformal map*)

bb = Delete[
   Union[Table[{Im[-(1/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)) + 
         aa[[i, 1]]^2/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2) + 
         aa[[i, 2]]^2/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)] + 
       2 Re[aa[[i, 2]]/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)], -2 Im[
         aa[[i, 2]]/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)] + 
       Re[-(1/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)) + 
         aa[[i, 1]]^2/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2) + 
         aa[[i, 2]]^2/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)]}, {i, 
      Length[aa]}]], Length[aa]];
bb1 = Delete[
   Union[Table[{-(Im[-(1/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)) + 
           aa[[i, 1]]^2/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2) + 
           aa[[i, 2]]^2/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)] + 
         2 Re[aa[[i, 2]]/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)]), -2 Im[
         aa[[i, 2]]/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)] + 
       Re[-(1/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)) + 
         aa[[i, 1]]^2/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2) + 
         aa[[i, 2]]^2/((1 + aa[[i, 1]])^2 + aa[[i, 2]]^2)]}, {i, 
      Length[aa]}]], Length[aa]];
dlst1 = Table[
   Floor[1 + (1 + 
        Floor[5*Norm[bb[[i]]]])/(Abs[
         Cos[Arg[bb[[i, 1]] + I*bb[[i, 2]]]]] + 
        Abs[Sin[Arg[bb[[i, 1]] + I*bb[[i, 2]]]]])], {i, Length[bb]}];
Min[dlst1]
Max[dlst1]
dlst2 = Table[
   Floor[1 + (1 + 
        Floor[5*Norm[bb1[[i]]]])/(Abs[
         Cos[Arg[bb1[[i, 1]] + I*bb1[[i, 2]]]]] + 
        Abs[Sin[Arg[bb1[[i, 1]] + I*bb1[[i, 2]]]]])], {i, 
    Length[bb1]}];
Min[dlst2]
Max[dlst2]
ListPlot[{bb, bb1}, 
 PlotStyle -> {{Red, PointSize[0.001]}, {Orange, PointSize[0.001]}}, 
 ImageSize -> 1000, Axes -> True, PlotRange -> {{-4, 4}, {-4, 4}}*1.5,
  Background -> White]
ptlst2 := 
  Point[Developer`ToPackedArray[bb], 
   VertexColors -> Developer`ToPackedArray[cr /@ dlst1]];
ptlst3 := 
  Point[Developer`ToPackedArray[bb1], 
   VertexColors -> Developer`ToPackedArray[cr /@ dlst2]];

g3a = Graphics[{PointSize[.001], ptlst2, ptlst3}, 
  AspectRatio -> Automatic, ImageSize -> 1000, Background -> Black, 
  PlotRange -> {{-3, 3}, {-3, 3}}*4.5/3]

(*end*)
POSTED BY: Anonymous User
Anonymous User
Anonymous User
Posted 7 years ago
Attachments:
POSTED BY: Anonymous User

Welcome to Wolfram Community, Roger, thanks for sharing your apollonian gaskets! You by the way can add animated GIFs as any images - I added it to your post, along with a few related groups.

POSTED BY: Vitaliy Kaurov
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard