Geometry : Prisms with Parquet Faces
Created on June 27, 2022. Last update on July 17, 2022.
Motivation
The realm of strictly convex non self intersecting polyhedra with regular faces is well known, it is made of the prisms and anti-prisms infinite families and the Platonic, Archimedean and Johnson solids which are finite. What if we release some constraints on these shapes ? What if we remove the strict convexity and allow some adjacent faces to be coplanar. A whole new set of solids and families has been born like the Diamonds, the Triamonds, the solids with conditional edges and much much more. These solids and their families are still an active field of research. So, let's start to explain what the newly allowed faces for these convex solids look like: let's talk about parquet polygons.
Introduction to Parquet Polygons
Parquet polygons as described in [1] are convex polygons composed of other regular convex polygons connected edge to edge. Take four equilateral triangles, make the Triforce and you have a parquet polygon. Same if you subdivide a square into four smaller squares. Even though there is an infinite number of these polygons, they can be classified into 23(20+3) different families that are denoted by their own symbol.
This symbol indicates both the number of vertices that are not flat and the angles between the adjacent edges at this vertices. However, angles are not indicated by their value but by the regular polygon they correspond to. Moreover, exponent notation (here using the ^ symbol) enables to compress the parquet symbol. Let's have an example: (3, 30, 5^3, 30) is used for the family of parquet polygons with six non-flat vertices. The angles at these vertices have the same values in order as for the triangle (3-gon), the tridecagon (30-gon), then the pentagon (5-gon) three times in a row and finally the tridecagon once more. It does not mean that the triangle, tridecagon and pentagon are part of the shape but only that the angles at the special vertices have the same value they have in the corresponding n-gon. Such a shape looks like so:
Question : What do the polygon of other families look like ?
I have made a distinction between special vertices and flat vertices. First, both belong to the outer boundary of the polygon. At flat vertices, the exterior angle is 180 degrees. They do not appear in Pryakhin's notation because he considers implicitly that parquet polygons may have edges of different lengths which values are always integer numbers. I consider that long edges are split into multiple edges of unit length, so I need to add these flat vertices in. The advantage is that I can now more precisely address a particular shape using its symbol, I simply add zeros where the flat vertices lies. When the Triforce is (3^3) with Pryakhin's notation, it is (3, 0, 3, 0, 3, 0) with my notation. Subdividing this last polygon one more time, with four triangles per triangle, gives (3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0) or (3, 0^3, 3, 0^3, 3, 0^3) for short. Be careful not to mix up the 0 and the 3 between the value and the exponent. In my notation, the symbol (3^3) corresponds only to the equilateral triangle (3-gon).
Before addressing the problem, I have discarded three families from the original set. These incorrect families are related to the use of pentagon. Actually, there are five families using pentagon (in Pryakhin's notation). The following two : (3, 30, 5^3, 30), (3, 30, 5, 30, 3, 30^2) are valid. The remaining three : (6^2, 30, 5^3, 30), (3, 30^2, 6^2, 30, 5, 30), (6^2, 30, 5, 30, 6^2, 30^2) are not. A regular pentagon cannot be subdivided by using other regular polygons which means that a vertex cannot be inserted into any of its edges. Consequently, the two valid families have only a single instance each and the resulting polygon have only edges of unit length with no flat vertices. For the three invalid families, any instance even at the most basic level of subdivision would have to insert a vertex on the pentagon edge.
Decomposition of Parquet Polygons
For each family, I have found, using my notation, the general symbol that allows to generate all polygons within this family at the specified subdivision level. In each family, there is a certain number of degrees of liberty according to the subdivision level that are independent of each other. For instance, subdividing a square can be done vertically or horizontally, the corresponding general symbol is then (4, 0^X, 4, 0^Y, 4, 0^X, 4, 0^Y). X and Y denotes the subdivision level of each direction. They are positive integers. When X or Y is zero, we have 0^0 meaning that the flat vertices does not exist. From this scheme, the first polygons of this family are :
- (4, 4, 4, 4) for X=0, Y=0
- (4, 4, 0, 4, 4, 0) for X=1, Y=0
- (4, 0, 4, 4, 0, 4) for X=0, Y=1
- (4, 0, 4, 0, 4, 0, 4, 0) for X=1 and Y=1
Pryakhin's symbol | My symbol with subdivision numbers |
---|---|
(3^3) | (3, 0^X, 3, 0^X, 3, 0^X) |
(3^2, 6^2) | (3, 0^(1+X+Y), 3, 0^Y, 6, 0^X, 6, 0^Y) |
(3, 6^4) | (3, 0^(1+X+Y), 6, 0^Z, 6, 0^X, 6, 0^Y, 6, 0^(1+X+Z)) |
(3, 12^2, 6^2, 12^2) | (3, 0^(1+X+Y), 12, 0^Z, 12, 0^Y, 6, 0^X, 6, 0^Y, 12, 0^Z, 12, 0^(1+X+Y)) |
(3, 6, 3, 6) | (3, 0^X, 6, 0^Y, 3, 0^X, 6, 0^Y) |
(3, 12^2, 3, 12^2) | (3, 0^X, 12, 0^Y, 12, 0^X, 3, 0^X, 12, 0^Y, 12, 0^X) |
(3, 12, 4^2, 12) | (3, 0^X, 12, 0^Y, 4, 0^X, 4, 0^Y, 12, 0^X) |
(3, 30, 5^3, 30) | (3, 30, 5^3, 30) |
(3, 30, 5, 30, 3, 30^2) | (3, 30, 5, 30, 3, 30^2) |
(4^4) | (4, 0^X, 4, 0^Y, 4, 0^X, 4, 0^Y) |
(4, 12^2, 4, 12, 6, 12) | (4, 0^X, 12, 0^Y, 12, 0^Z, 4, 0^Y, 12, 0^X, 6, 0^Z, 12, 0^Y) |
(4, 12^2, 4, 12^4) | (4, 0^X, 12, 0^(1+Y+Z), 12, 0^X, 4, 0^Y, 12, 0^X, 12, 0^Z, 12, 0^X, 12, 0^Y) |
(6^2, 12^2, 6^2, 12^2) | (6, 0^(X+Y), 6, 0^Z, 12, 0^U, 12, 0^Y, 6, 0^(X+Z), 6, 0^Y, 12, 0^U, 12, 0^Z) |
(6^2, 12, 4^2, 12) | (6, 0^X, 6, 0^Y, 12, 0^Z, 4, 0^(1+X+Y), 4, 0^Z, 12, 0^Y) |
(6^6) | (6, 0^X, 6, 0^Y, 6, 0^Z, 6, 0^X, 6, 0^Y, 6, 0^Z) |
(6, 12^2, 6, 12^2, 6, 12^2) | (6, 0^X, 12, 0^Y, 12, 0^Z, 6, 0^U, 12, 0^Y, 12, 0^X, 6, 0^Z, 12, 0^Y, 12, 0^U) |
(6, 12^4, 6, 12^4) | (6, 0^X, 12, 0^Y, 12, 0^Z, 12, 0^U, 12, 0^X, 6, 0^Z, 12, 0^Y, 12, 0^X, 12, 0^U, 12, 0^Z) |
(6, 12^10) | (6, 0^X, 12, 0^(1+Y+Z), 12, 0^X, 12, 0^Y, 12, 0^X, 12, 0^Z, 12, 0^X, 12, 0^Y, 12, 0^X, 12, 0^(1+Y+Z), 12, 0^X) |
(6, 12^2, 6, 12^6) | (6, 0^X, 12, 0^(1+Y+Z), 12, 0^X, 6, 0^U, 12, 0^Z, 12, 0^X, 12, 0^Y, 12, 0^X, 12, 0^Z, 12, 0^U) |
(12^12) | (12, 0^X, 12, 0^Y, 12, 0^Z, 12, 0^U, 12, 0^V, 12, 0^Y, 12, 0^X, 12, 0^U, 12, 0^Z, 12, 0^Y, 12, 0^V, 12, 0^U) |
As you may notice, there is up to five different letters (X,Y,Z,U,V). For actual examples fo the first level of subdivision, see here.
Alternative fillings
Most parquet polygons of a given symbol may have alternative fillings of regular faces. There are three reasons for that. The first reason is that any six equilateral triangles around a vertex may be replaced with a 6-gon which occurs for almost any polygon when the subdivision level increases. The second reason is that the 12-gon may be replaced by a set of triangles and squares but that's only occuring in the (12^12) sub-family where X=Z and Y=U=V=0. The third reason is specific to the (12^12) family. The interior angle of the 12-gon is 150 degrees so both a square and a triangle can fit there. Since this family only have this type of interior angles, there are at least two possible configurations for each symbol where the position of the triangles and squares are interchanged. Of course, there are more combinations when the subdivision level increases because polygons of higher levels may include polygons of lower levels from the (12^12) family.
You can view all possible decomposition of parquet faces here.
Side note : Cores and rings
By browsing through the various examples here it looks like parquet polygons of higher subdivision levels are formed from strips of squares and triangles arranged as concentric rings around a core lower level parquet polygon.
Side note 2 : Infinite tesselation levels
All but two of the 20 families (the ones with the pentagon) have an infinite number of tesselation levels because they are composed of equilateral triangles and squares. These two can be subdivided by smaller version of themselves (actually scaled down by a factor of two) any number of times and they also do tesselate the plane regularly. The hexagon also appears in the parquet faces, it can be decomposed into six triangles with the same edge length and also tesselates the plane regularly. The 12-gon can be decomposed into a set of square and triangles but do not tesselate the plane. The pentagon cannot be decomposed into other regular polygons and do not tesselate the plane.
Generation algorithm
Given the symbol of a parquet face, it is straightforward to find its contour since all edges are of unit length and that the symbol describes the angle at each vertex (the angle between adjacent edges). The formula to convert this number n into the corresponding angle is pi*n/(n-2) when n is > 2 and pi when n is 0.
Once the contour is known, the idea is to fill it progressively from the border of the polygon towards the inside and update the contour till it has the shape of a regular polyhedra. At each step, we look for the vertex with the smallest angle in the contour, then we insert the appropriate regular polygons which updates the contour. There is only four different types of vertex that needs to be filled in:
- when the value is 3 (60 degree angle), we insert a 3-gon
- when the value is 4 (90 degree angle), we insert a 4-gon
- when the value is 6 (120 degree angle), we insert two 3-gons
- when the value is 12 (150 degree angle), we insert a 3-gon either before or after the vertex
You may notice that we never insert a 6-gon or 12-gon. For the 12-gon, the situation occurs only in the (12^12) family and is part of the stop condition. The stop condition is to check whether the contour is that of the 3-, 4-, 5- or 12-gon. When the condition is satisfied by the 12-gon, we can either choose to stop or to continue with the filling of the contour.
For the 6-gon, the problem is dealt with on a separate process. Once the decomposition of a parquet face is found, we can check if any vertex has a valence of six and replace the six triangles with an hexagon. By repeating this process recursively, we generate the alternative fillings.
Prisms
Finally, I have extruded the parquet polygons in order to make prisms. I am using my newly made polyhedra viewer for the display. Thanks to the decomposition into regular faces, these prisms are convex (but not strictly) regular faced polyhedra. When a parquet face has alternative fillings, two different fillings may be used on opposite faces of the prism but I have not included those.
References