Sections: Definition | Odds | Compounds | Chirality | Partitions | Alternated | Polychains and partials | Fractional | Extended | Equiangular | Specification

# Definition

A polytile or p-tile as an equilateral polygon notated by a set of integers representing vertex angles. The p is an even whole number 4 or greater. The polytile angles representing multiples of a 360°/p degree turns. Angles are measured as turn angles, zero for straight (colinear edges), positive for counterclockwise turns, and negative for clockwise turns. For example: Tetratiles, Hexatiles, Octatiles, Decatiles, and Dodecatiles have turn angles that are integer multiples of 90°, 60°, 45°, 36° and 30° turns respectively.

• A p-tile standard notational is: p:a1.a2…am^n. (A square is 4:1^4 as four quarter turns, 90°.)
• Each turn angle ai index is an integer less than p/2. (Indices ±p/2 are half turns, 180°.)
• A ^n (or **n) exponent repeats sequence n times. A chiral pair is mirrored as ^-n, including ^-1.
• The turning number is computed by: t=n(a1+a2+…+am)/p. If |t|=1, it is a simple polygon (convex or concave). A crossed polygon has t=0, and star polygon has |t|>1.
• If the “p:” is  not given, we assume simple (t=1), and compute p=n(a1+a2+…+am).
• Turn angles ai may be allowed outside (-p/2,p/2), but to correctly compute the turning number, they need be given within the signed range modulo p.
• A p-tile can be up-scaled: p:a1.a2..am^n to kp:ka1.ka2..kam^n, for any whole number k. In reverse, any kp-tile, with all indices as multiples of k, can be down-scale to a p-tile.
• A polytile expression that does not close as cycle is called a polychain. These have uses in translational patterns and extending similar polytiles.

A regular n-gon tile is represented by n 1s. The sum of these numbers equal n. For example 111111 or 1.1.1.1.1.1 or 16 is a regular hexagon, with 6 60° angles. Odd-sided regular polygons can only be generated by even, 2n-tiles. For example a triangle is 222 or 2.2.2 or 23, with 3 120° angles. Zero indices can be given for colinear edges, and negative indices allow for concave, self-contacting and self-intersecting tiles.

For example 1111 or 112 or 14 is a square, while a 2:1 rectangle is 110110 or 1102. An exponent is always at the end of an expression, and applies to the full sequence. A negative exponent can imply a reverse order for a chiral pair. For example 4321 = 1234^-1.

A regular n-gon has r2n symmetry. For example a square is r8 symmetry. Odd (2n+1)-tiles are only a subset of 2(2n+1)-tiles and are geometrically and notionally identical.

For example, there are 3 strictly convex hexatiles, 6:1^6, 6:1.2^2, and 6:2^3, with one concave star shown 6:-1.2^6.

# Odd polytiles

Polytile expressions with odd p, can be defined, but fail to have a simple graphical representation since the regular p-gons must alternate in two orientations to connect edge-to-edge. Such angles are expressed more easily as a 2p-tiles, converted by doubling p, and doubling all the angles ai: p:a1.a2…am^n --> 2p:2a1.2a2…2am^n. For example a regular pentagon, represented as 5:1^5, can be represented by a doubling as decatile 10:2^5, and a regular pentagram 5:2^5, as 10:4^5.

Actual construction of equilateral polygons from edge-to-edge odd regular p-gons exist as the subset of 2p-tiles which have only odd integer turns. For example we could say there are 2 strictly-convex pentatiles, represented notationally as decatiles, 10:1^10, and 10:1.1.3^2. On the pentagons, turns have to be counted as opposite vertex (an illegal connection 0), and first edge turn as 1, skipping illegal vertex at 2, and then second turn-edge as 3...

# Covers and compound notation

If p:a1.a2…am^n is a valid polytile, then p:a1.a2…am^nc is a degenerate c-cover of it, repeating the same vertices and edges c times. A multicovered, or c-cover polygon is degenerate and can’t be seen, but have a topological existence.

A standard reinterpretation of a c-cover is a c-compound or (c-part). This is expressed in regular polygons and stars {p/q} --> c{a/b}, where c=gcd(p,q), and a=p/c, b=q/c. Compounds add rotated copies, giving ac-fold cyclic symmetry. For example {6/2} is a double-covered triangle, can be reinterpreted as a compound of 2 triangles 2{3}, also called a hexagram.

This compounding can be generalized for any polytile. A c-cover polytile, '''p:a1.a2…am^nc''', is written as a c-compound c*p:a1.a2…am^n, interpreted as c rotated copies of '''p:a1.a2…am^n'''. A c-compound m-adic nc-gram'' has mnc vertices.

For example, as a dodecatile, a square is 12:3^4, while a double-cover square is 12:3^8, triple-cover 12:3^12, and quadruple-cover 12:3^16, with a 2-compound square 2*12:3^4, and 3-compound square 3*12:3^4. The double-cover and quadruple covers are unfilled due to even-densities being unfilled.

# Chiral pairs

Negative exponents repeat a sequence backwards, including ^-1. This allows chiral pairs to be expressed by the same sequence and is helpful in larger polytiles to avoid a need to relist the vertices backwards.

• p:a1.a2…am-1.am^-n = p:am.am-1…a2.a1^n.

If a polytile has reflective symmetry, this will generate the same polytile. This equivalence is a definition of a reflective polytile.

For example, 12:1.2.3^2 is a chiral dodecatile, and 12:1.2.3^-2 is its chiral copy, 12:3.2.1^2.

# Reflective symmetry notation

Reflective polytiles have the form p:a.(b1.b2…bm).c.(bm.bm-1…b1)^n, or p:a.B.c.(B^-1)^n, where a and c are optional, exist if a vertex passes through the lines of reflection. B can be sequence length zero if there are no vertices off the reflection lines.

This can be expressed more compactly with 4 pipe operators | , defining 3 partitions, |a|B|c|^n = p:a.B.c.(B^-1)^n, allowing the reverse polychain B^-1 or bm.bm-1…b1 to be suppressed.

1. r2n symmetry: p:|a|||^p
2. d2n symmetry: p:|a|b1.b2…bm|c|^n
• d4 (rhombic) symmetry: p:|a||c|^2
• d2n (isotoxal) symmetry: p:|a||c|^n
3. i2n symmetry: p:|a|b1.b2…bm||^n
• i2n symmetry: p:||b1.b2…bm|c|^n --- equivalent for polytiles, but different results for an open polychain.
• i2 (bilateral) symmetry: p:|a|b1.b2…bm||
4. p2n symmetry: p:||b1.b2…bm||^n
• p2 (bilateral) symmetry: p:||b1.b2…bm||
• p4 (rectangular) symmetry: p:||b1.b2||^2

For example, these convex octadecatile (18-tiles) are shown in partition notation if they have reflections, and otherwise ordinary polytile notation.

# Alternated powers

Some polychain sequences have the form (a1.a2…am).(-a1.-a2…-am), with a second set repeating the first, but turning in the opposite direction. This has an notation a1.a2…am^~2, signifying 2 copies, the second opposite turns. Such expressions can exist in cross-polygons, and also in frieze groups, so 3:1^~10 = 3:1.-1^5, 5 cycle zip-zag pattern. And 4:1.1^~10 = 4:1.1.-1.-1^5, 5 square wave patterns.

a1.a2…am^~n makes glide symmetry, frieze group p11g, and doubles to p2mg for ||a1.a2…am||^~n.

For example, 12:1.2.3.-1.-2.-3^~5 can be written more compactly as 12:1.2.3^~10.

Similarly a1.a2…am^~-2 = (a1.a2…am).(-am.…-a2.-a1), reversing both direction and signs of alternate sets.

And a1.a2…am^~-2n = (a1.a2…am).(-am…-a2.-a1)^n makes 2-fold rotations, frieze group p2, doubles to p2mg for ||a1.a2…am||^~-n.

For example, 12:1.2.3.-3.-2.-1^~5 can be written more compactly as 12:1.2.3^~-10.

# Polychains and Partial notation

A polytile expression that does not close is called a polychain. A polychain expression is not a polygon, but has uses.

A polychain can be closed by adding a final edge between the first and last vertices.

•  p:a1.a2…am+

# Fractional notation

A fractional polytile is a central dissection a polytile and adding 2 radial edges and the central point. Polytiles notation is p:a1…am^n/f, with f as a divisor of n, starting at vertex a1. This allows symmetric fractional polytiles like isosceles triangles, kite, dart, and other common and uncommon shapes of interest.

# Extended notation

A polytile, p:a1.a2…am^n, can be extended by operator ! by a polychain p:b1.b2…bl^k with a special notation, and optionally repeated recursively r times.

• p:a1.a2…am^n!b1.b2…bl^k
• p:a1.a2…am^n!b1.b2…bl^k!r

There are 2 forms:

• A!B!r distributes the polychain B between all elements of polytile A.
• A!~B!r distributes the polychain B between all elements of polytile A with alternate signed turns. This will divide the symmetry in half.

If the polychain has sum s=(b1+b2…+bl)k nonzero, that sum must be subtracted from every element of a1.a2…am^n. a'i = (ai -s) for all i.

For example, the hexagonal concave star 12:-2.4^6 has a simple extend of 0,1,-1, or alternating +1,-1.

# Equiangular notation

Polytile notation allows the construction of equiangular polygons with integer edge lengths, expressed as (0^(a-1)) for an a-length edge. The colinear edges (with turn 0) are interpreted as vertices for equilateral and creating integer length edges for equiangular polytiles.

Equiangular notation allows this in a more compact format <p/q>:e1.e2…em^n, using turn angles of a regular {p/q} polygon, sequential edge integer lengths e1..em, repeated m times. If edge lengths are negative, the turn will go cw instead of ccw. This is translated into p:±q.(0^(e1-1))....±q.(0^(em-1))^n, each (0^a) terms extends as equilateral colinear edges.

Partitions can also be applied for equiangular notation to express reflective symmetry.

For example, these equiangular hexagons have 1, 2, or 3 different edge lengths. <6>:1.2.3^2 is the same as equilateral notation: 6:1.0.1.0.0.1^2.

# Polytile specification

• Types
1. POLYTILE = [p:]E --- (closed equilateral polygon)
2. POLYCHAIN = p:E --- (open equilateral polygonal chain)
3. COMPOUND = c*POLYTILE --- (multipath equilateral polygon)
4. FRACTION = POLYTILE/f  ---(polygon with sequential subset of edge with center )
5. PARTIAL = POLYCHAIN+  --- (polygon as polygonal chain and closing edge)
6. EQUIANGULAR = <p/q>:E or <p>:E ---(polygon or polygonal chain, elements interpreted as integer lengths, p-tile, turn angle q or 1)
• [X] = optional component
• Standard form
•  p:a1...am^n --- EQUILATERAL
• <p/q>:b1...bm^n --- EQUANGULAR
• Numbers
• Let a = integer -p/2 to p/2 --- for turn angle
• Let b = integer edge-length
• Let c = 1,2,3,... --- for c-compounds
• Let f = 1,2,3,... --- for f-fraction
• Let m = 1,2,3,... --- for m-adic sequences
• Let n = integer --- for repetitions, negative reversed order, zero for nothing.
• Let p = 4,6,8,... --- for p-tile size, 360/p angles. If p=3,5,7..., implicitly doubled to 6,10,14...
• Let r = 1,2,3,... --- for r-recursive steps
• Let e = a or (E) = Element --- or b for EQUIANGULAR
• Let E = (E) = expression ---
1. (e1.e2...em) = e1.e2...em
2. Repetitions:  (E)^n  = (E^n) = E^n = E**n = E.E.E.... --- ^n last in any expression, repeats all elements
• (e1.e2...em)^1 = e1.e2...em
• (e1.e2...em)^n = e1.e2...em^n
• (e1.e2...em)^-1 = e1.e2...em^-1 = em...e2.e1
• (e1.e2...em)^-n = e1.e2...em^-n = em...e2.e1^n
• (e1.e2...em)^0 = (e1.e2...em^0) = e1.e2...em^0 = {} --- useful to remove a subexpression.
• Example: ((-1^3).2.(1^3))^3 = (-1^3).2.(1^3)^3 = (-1.-1.-1.2.1.1.1)^3 = -1.-1.-1.2.1.1.1^3 = -1-1-12111^3
3. Opposite turns: -(E) --- changes counterclockwise into clockwise turns
• -(e1.e2...em)  = -e1.-e2...-em
4. Alternate opposite turns =  E^~2[n] = E.-(E)[^n]
• (e1.e2...em)^~2 = e1.e2...em^~2 = (e1.e2...em).(-e1.-e2...-em) = e1.e2...em.-e1.-e2...-em
• (e1.e2...em)^~-2 = e1.e2...em^~-2 = (e1.e2...em).(-em...-e2.-e1) = e1.e2...em.-em...-e2.-e1
• (e1.e2...em)^~2n = e1.e2...em^~2n = (e1.e2...em).(-e1.-e2...-em)^n = e1.e2...em.-e1.-e2...-em^n
• (e1.e2...em)^~-2n = e1.e2...em^~-2n = (e1.e2...em).(-em...-e2.-e1)^n = e1.e2...em.-em...-e2.-e1^n
5. Reflective |[a1]|[E]|[a2]| = a1.(E).a2.(E^-1)
• |a1|e1.e2...em|a2| = a1.(e1.e2...em).a2.(em...e2.e1) = a1.e1.e2...em.a2.em...e2.e1
• |a1|e1.e2...em|| = a1.(e1.e2...em).(em...e2.e1) = a1.e1.e2...em.em...e2.e1
• ||e1.e2...em|a2| = (e1.e2...em).a2.(em...e2.e1) = e1.e2....em.a2.em...e2.e1
• ||e1.e2...em|| = (e1.e2...em).(em...e2.e1) = e1.e2...em.em...e2.e1
• |a1||| = a1 --- one vertex expression
• |a1||a2| = a1.a2 --- two vertex expression
• |||a2| = a2
• |||| = {} --- no vertices
6. Extend (E1! [~]E2 [!r])
• E1!E2
• E1!~E2 --- alternate E2 and -(E2)
• E1!E2!r
• E1!E2!1 = E1!E2
• E1!E2!2 = (E1!E2)!E2
• E1!E2!3 = ((E1!E2)!E2)!E2
• E1!~E2!r
• E1!~E2!1 = E1!~E2
• E1!~E2!2 = (E1!~E2)!~E2
• E1!~E2!3 = ((E1!~E2)!~E2)!~E2

© 2020-2021 Created by Tom Ruen 