They look so cool. I want to do something with them.
I want to build them outward. The recursive algorithm didn't seem like as much fun. I want to place the tiles one at a time and sometimes I want to see two or more options.
This is similar to some of my past "fun" projects.
However, this is harder.
There is no grid known in advance.
If two pieces meet up perfectly, we need to know that, and round off error will make ==
useless.
If two pieces overlap, we need to call that an error.
The basic algorithm is in place! It's time to add some niceties.
Now that the program finds all forced moves, I am surprised by just how many forced moves there are!
- https://www.math.brown.edu/reschwar/MFS/handout7.pdf –
fromDot
andtoDot
refer to figure 1 in this document. - https://www.thingiverse.com/thing:1254773 – I want to pretend that I'm playing with the physical objects, even though I'm only working with computer images.
- KITES AND Darts cutouts – Includes angles and more.
- Penrose Instructions
- Penrose Tiling – More pictures.
I created the following picture from two sources.
Wikipedia says these are the only 7 ways that kites and darts can share a vertex.
I added the lavender dots to match the pictures in the handout.
The word dot
in the code refers to vertices that contain a lavender dot.
This is a VS Code Project. And I've added the Live Server extension to allow me to run the program. (You can't run JavaScript modules or threads without a web server.)
Or try it yourself: https://tradeideasphilip.github.io/penrose-tiling/