Truchet Tiles
30 Nov
This Truchet tiling consists of a grid constructed from only two tiles, shown below.

To speed up rendering, I’ve pre-rendered the tiles onto two offscreen graphics objects. The tiles are then rendered in a loop.
void draw()
{
background(255);
for (int i = 0; i < nbrCells; ++i) {
cells[i].render();
}
}
The render function for each cell looks at the cell's current state, and uses that to select the correct tile. I'm using the conditional operator (?:) to select the tile (tile1 or tile2) based on the value of the boolean variable state.
void render()
{
image(state? tile1 : tile2, px, py, cellW, cellH);
}
When you move the mouse, I figure out which tile falls under the mouse pointer, and flip its state. To make the effect more obvious, I've hidden the mouse pointer using noCursor().
