boundary_word_drafter
boundary_word_drafter,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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,
an Octave 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.