boundary_word_triangle
boundary_word_triangle,
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.
Objects constructed by connecting congruent equilateral triangles
are known as polyiamonds.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
boundary_word_triangle is available in
a MATLAB version.
Related Data and Programs:
boundary_word_triangle_test
boundary_word_drafter,
a MATLAB code which
describes the outline of an object on a grid of drafters,
or 306090 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_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.
polyiamonds,
a MATLAB code which
works with polyiamonds, simple shapes constructed by edgewise
connections of congruent equilateral triangles.
Reference:

Martin Gardner,
Mathematical Games:
On Polyiamonds: Shapes That are Made Out of Equilateral Triangles,
Scientific American,
Volume 211, December 1964.

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

T H O'Beirne,
Pentominoes and Hexiamonds,
New Scientist,
Volume 12, pages 379380, 1961.

Torbijn,
Polyiamonds,
Journal of Recreational Mathematics,
Volume 2, pages 216227, 1969.
Source code:

boolean_to_string.m,
given a boolean value,
returns the character vector 'True' or 'False'.

gort_boundary.m,
returns the boundary word
of the Gort polyiamond.

boundary_hexiamond.m,
returns the boundary word
for a given hexiamond.

boundary_is_legal.m,
given the boundary word of a polyiamond,
determines if it is legal.

boundary_plot.m,
given the boundary word of a polyiamond,
creates a plot.

boundary_print.m,
given the boundary word of a polyiamond,
prints it.

boundary_range.m,
given the boundary word of a polyiamond,
returns its range in the I and J directions.

boundary_reflect.m,
given the boundary word of a polyiamond,
returns the boundary word of the reflected polyiamond.

boundary_representative.m,
returns the representative for a boundary word,
the lexically first member of the equivalence class.

boundary_rotate.m,
given the boundary word of a polyiamond,
rotates it through a multiple of 60 degrees.

boundary_snap.m,
given the boundary word of a polyiamond,
"snaps" it so its minimum I and J node coordinates are 0.

boundary_sort.m,
given the boundary word of a polyiamond,
returns a sorted version of the boundary word.

boundary_tiny.m,
returns the boundary word
of the tiny polyiamond.

boundary_to_edge.m,
given the boundary word of a shape,
converts it to a sequence of nodes that bound
the shape.

boundary_to_triangle.m,
given the boundary word of a polyiamond,
converts it to a triangle list.

boundary_to_vertex.m,
given the boundary word of a polyiamond,
converts it to a vertex list.

boundary_translate.m,
given the boundary word of a polyiamond,
returns the boundary word of the translated polyiamond.

chvec_lt.m,
is TRUE if c1

grid_plot.m,
plots a parallelogram grid divided into equilateral triangles.

ij_to_xy.m,
given the (i,j) parallelogram coordinates of a node,
returns the (x,y) Cartesian coordinates.

ijk_fill.m,
given (i,j,k) parallelogram triangle coordinates,
plots a filled triangle on the current figure.

ijk_to_xy.m,
given (i,j,k) parallelogram triangle coordinates,
returns the (x,y) Cartesian point coordinates of the
nodes that are vertices.

is_octave.m,
is TRUE if Octave is executing.

name_hexiamond.m,
given an index between 1 and 12 of a hexiamond,
returns the corresponding name.

s_escape_tex.m,
deescapes TeX escape sequences.

vertex_contains_ijk.m,
given the vertex list of a polyiamond,
determines if an IJK triangle is contained inside the polyiamond.

vertex_contains_point.m,
given the vertex list of a polyiamond,
determines if a point is contained inside the polyiamond.

vertex_plot.m,
given the vertex list of a polyiamond,
plots the polyiamond.

vertex_to_triangle.m,
given the vertex list of a polyiamond,
produces the corresponding triangle list.
Last revised on 15 June 2021.