Return to Home


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

Polytile Notation

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+

Example polychains and partial polytiles


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.

For example, hexagonal concave star fractions.


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


website counter