boundary_word_drafter
boundary_word_drafter,
a MATLAB code which
describes the outline of an object using a string of symbols that
represent the sequence of steps tracing out the boundary,
on a grid of drafters, or 30-60-90 triangles. The objects include
tiles for the eternity, serenity and trinity puzzles, and the
hat and turtle aperiodic monotiles.
Licensing:
The information on this web page is distributed under the MIT license.
Languages:
boundary_word_drafter is available in
a MATLAB version and
an Octave version.
Related Data and Programs:
boundary_word_drafter_test
boat,
a MATLAB code which
considers the whale tiling puzzle, a smaller version of the eternity
puzzle. The whale puzzle specifies a region R composed of 756
30-60-90 triangles, and a set of 21 "tiles", each consisting of 36
30-60-90 triangles, and seeks an arrangement of the tiles that
exactly covers the region.
boundary_word_equilateral,
a MATLAB code which
describes the outline of an object on a grid of equilateral triangles,
using a string of symbols that represent the sequence of steps
tracing out the boundary.
boundary_word_hexagon,
a MATLAB code which
describes the outline of an object on a grid of hexagons,
using a string of symbols that represent the sequence of steps
tracing out the boundary.
boundary_word_right,
a MATLAB code which
describes the outline of an object on a grid of isoceles right triangles,
using a string of symbols that represent the sequence of steps
tracing out the boundary.
boundary_word_square,
a MATLAB code which
describes the outline of an object on a grid of squares,
using a string of symbols that represent the sequence of steps
tracing out the boundary.
eternity,
a MATLAB code which
considers the eternity puzzle, which considers an irregular dodecagon
shape that is to be tiled by 209 distinct pieces, each formed by 36
contiguous 30-60-90 triangles, known as polydrafters.
eternity_tile,
a MATLAB code which
considers the individual tiles of the eternity puzzle,
209 distinct pieces, each formed by 36
contiguous 30-60-90 triangles, known as polydrafters.
pram,
a MATLAB code which
considers the pram puzzle, a smaller version of the eternity
puzzle. The pram puzzle specifies a region R composed of 2304
30-60-90 triangles, and a set of 64 "tiles",
consisting of 36 30-60-90 triangles, and seeks an arrangement
of the tiles that exactly covers the region.
serenity,
a MATLAB code which
considers the serenity puzzle, a smaller version of the eternity
puzzle. The serenity puzzle specifies a dodecagonal region R
composed of 288 30-60-90 triangles, and a set of 8 "tiles",
each consisting of 36 30-60-90 triangles, and seeks an arrangement
of the tiles that exactly covers the region.
trinity,
a MATLAB code which
considers the trinity puzzle, a smaller version of the eternity
puzzle. The trinity puzzle specifies a region R composed of 144
30-60-90 triangles, and a set of 4 "tiles", T1, T2, T3 and T4,
each consisting of 36 30-60-90 triangles, and seeks an arrangement
of the four tiles that exactly covers the region.
whale,
a MATLAB code which
considers the whale tiling puzzle, a smaller version of the eternity
puzzle. The whale puzzle specifies a region R composed of 288
30-60-90 triangles, and a set of 8 "tiles", each consisting of 36
30-60-90 triangles, and seeks an arrangement of the tiles that
exactly covers the region.
Reference:
-
Marcus Garvie, John Burkardt,
A new mathematical model for tiling finite regions of the plane
with polyominoes,
Contributions to Discrete Mathematics,
Volume 15, Number 2, July 2020.
-
Solomon Golomb,
Polyominoes: Puzzles, Patterns, Problems, and Packings,
Princeton University Press, 1996,
ISBN: 9780691024448
-
Ed Pegg,
Polyform Patterns,
in Tribute to a Mathemagician,
Barry Cipra, Erik Demaine, Martin Demaine, editors,
pages 119-125, A K Peters, 2005.
-
Mark Wainwright,
Prize specimens,
Plus magazine,
01 January 2001,
https://plus.maths.org/content/prize-specimens
Source code:
-
ch_wrap.m,
forces a character to lie between given limits by wrapping.
-
edge_plot.m,
plots the edge nodes
of an object.
-
eternity_grid_word.m,
returns the boundary word
for the Eternity grid.
-
eternity_tile_word.m,
the boundary word for any tile, given its index number.
-
hat_monotile_word.m,
the boundary word for the hat monotile, which, along with its
reflection, provides an aperiodic tiling of the plane.
-
hexagon_word.m,
boundary word
for the hexagon grid.
-
hexagon3_word.m,
returns the boundary word
for the hexagon3 grid.
-
hexagon4_vertex_xy.m,
returns (x,y) coordinates of the vertices
for the hexagon4 grid.
-
i4_wrap.m,
forces an integer to lie between given limits by wrapping.
-
is_octave.m,
is TRUE if the function is called by Octave.
-
polygon_contains_point.m,
is TRUE if a polygon contains a point.
-
rectangle_triangle_k.m,
returns the indexes (k) of the three nodes forming each triangle
for the NX by NY rectangle grid.
-
rectangle_word.m,
returns the boundary word
for the NX by NY rectangle grid.
-
s_substitute.m,
substitutes characters in a string.
-
triangle_k.m,
returns the node indices of the vertices of the
triangles contained in an object.
-
turtle_monotile_word.m,
the boundary word for the turtle monotile, which, without using
reflection, provides an aperiodic tiling of the plane.
-
vertex_plot.m,
plots the vertices that define the polygon bounding
an object.
-
word_parity.m,
determines the parity of a shape.
-
word_print.m,
prints a boundary word of a shape.
-
word_range_ij.m,
returns the horizontal and vertical limits of an object, given
its boundary word, using the (i,j) coordinate system.
-
word_range_xy.m,
returns the horizontal and vertical limits of an object, given
its boundary word, using the (x,y) coordinate system.
-
word_reflect_ij.m,
returns the boundary word for an object reflected
across the 0, 30, 60, 90, 120, or 150 degree line through
the base point, using the (i,j) coordinate system.
-
word_reflect_xy.m,
returns the boundary word for an object reflected
across the 0, 30, 60, 90, 120, or 150 degree line through
the base point, using the (x,y) coordinate system.
-
word_representative.m,
returns the representative for a boundary word, the lexically first
member of the equivalence class.
-
word_reverse.m,
returns the boundary word for an object when it is traversed
in the reverse direction.
-
word_rotate_xy.m,
returns the boundary word for a rotated object,
using the (i,j) coordinate system.
-
word_rotate_xy.m,
returns the boundary word for a rotated object,
using the (x,y) coordinate system.
-
word_to_edge_ij.m,
determines the (i,j) coordinates of edge nodes from a boundary word.
-
word_to_edge_xy.m,
determines the (x,y) coordinates of edge nodes from a boundary word.
-
word_to_vertex_ij.m,
determines the (i,j) coordinates of vertices from a boundary word.
-
word_to_vertex_xy.m,
determines the (x,y) coordinates of vertices from a boundary word.
-
word_translate.m,
returns the boundary word for a translated object.
Last revised on 18 April 2024.