Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Generate the hexagonal tiling pattern of the spectre and its supertile
ResourceFunction["SpectreHexagonalTiling"][init] plots the spectre tiling initial conditions for integer init from 1 to 9. | |
ResourceFunction["SpectreHexagonalTiling"][init,size] plots the spectre tiling with init as initial conditions for a hexagonal array of integer size layers. | |
ResourceFunction["SpectreHexagonalTiling"][init,size,"type"] plots the combinatorial tiling of the given type. | |
ResourceFunction["SpectreHexagonalTiling"][init,size, typelist] plots the combinatorial tilings of all types in the typelist. |
| "Hexagon" | combinatorial hexagons |
| "Spectre" | the Spectre tiles |
| "Cluster" | 1-level supertiles of the Spectre |
| "n-Supertile" | n-level supertiles of the Spectre |
| ColorFunction | Automatic | function with inputs from 1 to 9, gives colors as output. |
| ColorRules | Automatic | list of rules from integers (from 1 to 9) to colors. |
| "Count" | 1 | required number of possible tilings. |
Depict a Mystic tile and a Spectre tile:
| In[1]:= |
| Out[1]= | ![]() |
Generate a tiling made of Mystic and Spectre tiles:
| In[2]:= |
| Out[2]= | ![]() |
Plot the tilings of combinatorial hexagons, the Spectre tiles and supertiles:
| In[3]:= |
| Out[3]= | ![]() |
Make a curved spectre tiling:
| In[4]:= |
| Out[4]= | ![]() |
There are 9 different initial conditions, corresponding to 9 kinds of hexagons:
| In[5]:= | ![]() |
| Out[5]= | ![]() |
Curve the spectre tiles and supertiles:
| In[6]:= | ![]() |
| Out[6]= | ![]() |
Any higher-level supertiles are available:
| In[7]:= | ![]() |
| Out[7]= | ![]() |
Use "Count" to give more possible tilings:
| In[8]:= |
| Out[8]= | ![]() |
Generate all valid one layer surroundings:
| In[9]:= |
| Out[9]= | ![]() |
Color the tiling using GrayLevel:
| In[10]:= |
| Out[10]= | ![]() |
Add blue EdgeForm in a tiling:
| In[11]:= |
| Out[11]= | ![]() |
The same style can be set by ColorFunction:
| In[12]:= |
| Out[12]= | ![]() |
Set EdgeShapeFunction to be Automatic to plot curved tilings:
| In[13]:= |
| Out[13]= | ![]() |
Plot the curved Spectre tiling with different edges function:
| In[14]:= | ![]() |
| Out[14]= | ![]() |
The function uses interpolation to make curved boundary. Interpolation options can be set manually:
| In[15]:= |
| Out[15]= | ![]() |
It is faster to use a list of types than to map over a list:
| In[16]:= |
| Out[16]= |
| In[17]:= | ![]() |
| Out[17]= |
They give exactly the same result, even if the option "Count" is not 1.
| In[18]:= |
| Out[18]= |
EdgeShapeFunction doesn’t work on hexagons:
| In[19]:= | ![]() |
| Out[19]= | ![]() |
The EdgeShapeFunction should be continuous from 0 to 1, and equal to zero at both 0 and 1. Otherwise, the shape would collapse. Also, if the value of the function increase to a large value, it may cause self-intersection:
| In[20]:= | ![]() |
| Out[20]= | ![]() |
Plot a large patch of spectre tiling, coloring Mystic purple and one of its neighboring tiles green:
| In[21]:= | ![]() |
| Out[21]= | ![]() |
Wolfram Language 13.0 (December 2021) or above
This work is licensed under a Creative Commons Attribution 4.0 International License