Compute Distinct Polyomino Variants

**POLYOMINO_MONOHEDRAL_VARIANTS**,
a MATLAB program which
computes the distinct variants of a polyomino under reflection
and 90 degree rotations.

A polyomino is a shape formed by connecting unit squares. It can be described by an MxN binary matrix. The matrix is assumed to be "tight", that is, there must be a 1 in the first and last rows, and first and last columns, of the matrix.

A polyomino can be rotated by 90, 180, or 270 degrees, and it can be reflected. There are 8 combinations of these transformations possible, so there are 8 variations of a given polyomino. However, because of symmetry, there may be 1, 2, 4, or 8 distinct variations.

This program accepts a binary matrix describing a polyomino, generates the 8 variations, and returns those which are distinct.

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

**polyomino_monohedral_variants** is available in
a MATLAB version.

polyomino_monohedral_variants_test

- pentomino_matrix.m returns a 0/1 matrix defining a particular pentomino.
- polyomino_equal.m, is true if two polyominoes are equal.
- polyomino_monohedral_variants.m, carries out reflections and rotations of a polyomino to determine which transformations yield distinct variants.
- polyomino_print.m, prints a polyomino.
- polyomino_transform.m, carries out reflections and rotations of a polyomino.
- timestamp.m, prints the YMDHMS date as a timestamp.