There's an interesting difference between the uniform triangle fill (by quarters) vs the nonuniform five ninths plus a quadruple ninth version. It appears that the former maps the rationals in [0,1] onto the "Eisenstein rationals" (r₁ + r₂ i √3) in the (equilateral) triangle based on [0,1]. So a (= the) preimage of the center Out[416]= 1/2 + I/(2 Sqrt[3]) is In[417]:= untrifil@% Out[417]= {2/5} Check: In[418]:= trifil @@ % // Simplify Out[418]= {1/6 (3 + I Sqrt[3])} More convincingly, the preimage of Out[405]= 113/355+(7 I Sqrt[3])/22 is In[406]:= untrifil@%//tim During evaluation of In[406]:= 188.873607 secs Out[406]= {66067177350394731417555234130689770663588400360845847462258734629314942043718190483511 /124330809102446660538845562036705210025114037699336929360115994223289874253133343883328} Check: In[407]:= trifil@@%//tim During evaluation of In[407]:= 42.187317 secs Out[407]= {113/355+(7 I Sqrt[3])/22} Interestingly, the centroid of the nonuniform filler (based on [0,3] instead of [0,1]) is a triple point: In[420]:= wolloh[3 %416] (triple size triangle) Out[420]= {3/10, 1/2, 7/10} Check: In[422]:= Simplify[hollow /@ %%]/3 Out[422]= {{1/6 (3 + I Sqrt[3])}, {1/6 (3 + I Sqrt[3])}, {1/6 (3 + I Sqrt[3])}} Likewise, the preimage of Out[408]= 13/9 + (13 I)/(6 Sqrt[3]) is In[423]:= wolloh@%408 Out[423]= {1204367/1680912} Check: In[424]:= Expand@Simplify[hollow @@ %] Out[424]= {13/9 + (13 I)/(6 Sqrt[3])} But wolloh[3/2 + I 3 Sqrt[3]/4] apparently recurses forever. I don't even have a good enough approximation to guess if this preimage is algebraic. --rwg On Wed, Oct 26, 2016 at 7:22 PM, Bill Gosper <billgosper@gmail.com> wrote:
On Fri, Oct 21, 2016 at 7:25 PM, Bill Gosper <billgosper@gmail.com> wrote:
See gosper.org/julianstrifle.png . Note the tiny self-crossings not visible in the cursive drawing. It is usually far clearer to portray a <2-dimensional curve as the boundary of a two-dimensional region. --rwg
Julian's Fourier expander takes an optional argument to arrange m copies of a curve around a regular m-gon. gosper.org/6trifil.png . Instead of spacefilling an equilateral triangle divided into quarters, I tried dividing it into five little ones plus a double size one. Arranged around a hexagon, gosper.org/ringnoring1234.png (one of the few cases where the outline looks maybe better than the filled area.) (Shades of https://en.wikipedia.org/wiki/Uniform_tilings_in_ hyperbolic_plane ?) Note that with 2468 rotors, the Fourier approximation gets nowhere near the middle. So is this a spacefill, or not? Julian: "Of course it is ..." Proof that it reaches all three vertices of each triangle: In[422]:= hollow /@ {0, 4/5, 1} // Expand
Out[422]= {{0}, {3/2 + (3 I Sqrt[3])/2}, {3}}
via (Julian's ever amazing) piecewiserecursivefractal Clear[hollow]; hollow[t_] := piecewiserecursivefractal[t, Identity, {Min[6, 1 + Floor[6*#]]} &, {6 # &, 6 # - 1 &, 3 - 6 # &, 6 # - 3 &, 6 # - 4 &, 6 - 6 # &}, {#/3 &, #/3 + 1 &, #/3/I^(2/3) + 3/2 + I Sqrt[3]/2 &, 3/2 + I Sqrt[3]/2 - #/3 &, 2 #/3 + 1/2 + I Sqrt[3]/2 &, #/3*I^(4/3) + 3 &}] A polygonal sampling: gosper.org/hollowfill150.png (Reminder: True spacefills self-contact like crazy.) --rwg
On Thu, Oct 20, 2016 at 4:49 AM, Bill Gosper <billgosper@gmail.com> wrote:
On 2016-10-19 10:11, James Propp wrote:
Very pretty. What's the math here? (Apologies if you've already answered this question.)
Jim Propp
Julian wrote a nifty Fourier expander for recursive Koch polygons. E.g., ptsgnlst2Fouriermat[{0, 1, I^(2/3), 1 + I^(2/3), 2}, {1, -1, 1, -1}] spacefills the triangle joining 0 to 2 via 1+i√3. Actually, it makes an infinite 3x3 matrix product for the coefficients a(k). Then Sum a(k+1/m) exp(2 i π (k+1/m)) repeats the fractal on the sides of an m-gon. The gif just accumulates consecutive harmonics. --rwg
On Wednesday, October 19, 2016, Bill Gosper <billgosper@gmail.com>
wrote:
With much help from Julian, gosper.org/hellodoily.gif --rwg
>[chop]