In[]:=
hgraph[max_]:=Graph[UndirectedEdge@@@Flatten[Table[Sort/@(Partition[Table[2kPi/(2^n),{k,0,2^n-1}],2,1,1]/Pi),{n,1,max+1}],1]]
In[]:=
tgraph[max_]:=Module[{inf,len,triangles,triedge,tricoord2,argPoint},argPoint[arg_]:={Cos[arg],Sin[arg]};​​inf=Flatten[Table[Sort/@(Partition[Table[2kPi/(2^n),{k,0,2^n-1}],2,1,1]/Pi),{n,1,max+1}],1];​​triangles=SortBy[First/@#&/@FindCycle[Graph[UndirectedEdge@@@Union[inf]],{3},All],Max[Denominator/@#]&];​​len=Length[triangles];​​triedge=Select[Subsets[Range[len],{2}],Length[Intersection@@triangles[[#]]]2&];tricoord2=Table[(Log[2,Max[Denominator/@triangles[[k]]]]+2)Reverse[N[Mean[argPoint[Pi#]&/@triangles[[k]]]]],{k,1,len}];​​Graph[Range[len],triedge,VertexCoordinatesThread[Range[len]tricoord2]]]
In[]:=
cbgraph[layers_]:=Module[{inf,extra,gg,dual,triangles,len,triedge,tricoord,hh},​​inf=Flatten[Table[Sort/@(Partition[Table[2kPi/(2^n),{k,0,2^n-1}],2,1,1]/Pi),{n,1,layers+1}],1];​​extra=Select[Union[Flatten[inf]],Denominator[#]2^layers&];​​gg=Graph[UndirectedEdge@@@Join[inf,{#,2Numerator[#]}&/@extra,Partition[2Numerator/@extra,2,1,1]],GraphLayout"TutteEmbedding",VertexSize(1/6)^Sqrt[layers],EdgeStyle(#White&/@UndirectedEdge@@@Join[{#,2Numerator[#]}&/@extra,Partition[2Numerator/@extra,2,1,1]]),VertexStyle(#{White,EdgeForm[White]}&/@(2Numerator/@extra))];​​dual=Select[Transpose[{VertexList[gg],GraphEmbedding[gg]}],First[#]<2&];​​inf=Flatten[Table[Sort/@(Partition[Table[2kPi/(2^n),{k,0,2^n-1}],2,1,1]/Pi),{n,1,layers+1}],1];​​triangles=SortBy[First/@#&/@FindCycle[Graph[UndirectedEdge@@@Union[inf]],{3},All],Max[Denominator/@#]&];​​len=Length[triangles];​​triedge=Select[Subsets[Range[len],{2}],Length[Intersection@@triangles[[#]]]2&];​​tricoord=Table[Mean[Last/@dual[[Flatten[Position[First/@dual,#]&/@triangles[[tri]]]]]],{tri,1,Length[triangles]}];​​hh=Graph[Range[len],triedge,VertexCoordinatesThread[Range[len]tricoord],VertexSize(1/4)^Sqrt[layers],EdgeStyleRed,VertexStyleRed];​​Show[gg,hh,ImageSize800]]
In[]:=
cbgraph[3]
Out[]=
In[]:=
Table[cbgraph[n],{n,6}]
Out[]=

Circles

Code

Plan

Trees overlaidd on existing graph

Make trees regular

Circle packing

Triangles same area