In the earlier post “Projection method and corner points” I have shown how to get the corner points of the Ammann-Beenker tiling. We now build the tiling using these points.
First we have to collect all these corner points in an array. Then, we find the smallest distance between two points, which is the length of the small diagonal of the 45 degree rhombs. As mentioned in the post “Iterative method for the Ammann-Beenker …” this diagonal is smaller than the side of the rhomb by sqrt(2-sqrt(2)). Thus we find the length of the side of the rhomb. This length is simply the length of the lines of the tiling. Searching for all pairs of points at this distance we get the lines of the tiling.
To create the tiles (squares and rhombs) we have to store the lines in a convenient way. The lines are connections between points. Thus I choose to note for each point all those other points it is connected to by lines. Note that we have to sort this connections according to their angles. Then, two subsequent connection points and the point itself are three corner points of a tile. The fourth corner results easily because all tiles are either rhombs or squares. You find the details in the code of the class TPoint for the individual points and in the class Tiling for the collection of all points in the next posts. We will use similar reasoning to program the dualization method.
This procedure gives wrong tiles at the border because all lines going outside are missing. Thus we should use only the part inside as a section of the Amman-Beenker tiling. The result of “Putting the dots and lines together – the code” is