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,VertexCoordinatesThread[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,VertexCoordinatesThread[Range[len]tricoord],VertexSize(1/4)^Sqrt[layers],EdgeStyleRed,VertexStyleRed];Show[gg,hh,ImageSize800]]
In[]:=
cbgraph[3]
Out[]=
In[]:=
Table[cbgraph[n],{n,6}]
Out[]=
Circles
Circles
Code
Code
Plan
Plan
Trees overlaidd on existing graph
Trees overlaidd on existing graph
Make trees regular
Make trees regular
Circle packing
Circle packing
Triangles same area
Triangles same area