1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-12-24 01:00:25 +00:00

tes mirror tile documented

This commit is contained in:
Zeno Rogue 2022-10-06 11:09:03 +02:00
parent d44e8b6416
commit 9004fdeee5
5 changed files with 70 additions and 1 deletions

View File

@ -0,0 +1,13 @@
## 123458_0_8314 A3+A12 example (5 vertices, 9 edges)
h2.
distunit(edge(12,4)/2)
let(a3=regangle(1,3))
let(a12=regangle(1,12))
unittile(a3,a3,a3)
unittile(a3,a3,a3)
unittile(a12,a12,a12,a12,a12,a12,a12,a12,a12,a12,a12,a12)
unittile(a3,a3,a3)
unittile(a3,a3,a3)
unittile(a12,a12,a12,*4)
unittile(a3,a3,a3)
conway("(0)(1 11'')(2 1'')(0')(1' 6'')(2' 8'')(0'')(2'' 0''')(3'' 0@6)(4'' 2@6)(5'' 0@4)(7'')(9'' 2@4)(10'' 1''')(2''' 1@5)(1@4 2@5)(0@5 1@6)")

View File

@ -0,0 +1,11 @@
## 123458_0_8314 A3+A12 example (5 vertices, 9 edges), simplified using mirrors
h2.
distunit(edge(12,4)/2)
let(a3=regangle(1,3))
let(a12=regangle(1,12))
unittile(a3,a3,a3)
unittile(a12,a12,a12,a12,a12,a12,a12,a12,a12,a12,a12,a12,|7)
unittile(a3,a3,a3)
unittile(a12,a12,a12,*4,|0)
unittile(a3,a3,a3,|2)
conway("(0)(1 11')(2 1')(0')(2' 0'')(3' 0@4)[9' 1''](2'' 1''')(0''' 1@4)")

View File

@ -0,0 +1,21 @@
## 12356_0_6329 A3+A8+C4 complex example (8 vertices, 16 edges)
h2.
distunit(arcmedge(3,3,8,8))
let(a3=regangle(1,3))
let(a8=regangle(1,8))
let(c4=regangle(3,4))
unittile(a3,*3)
unittile(a3,*3)
unittile(a8,a8,a8,a8,a8,a8,a8,a8)
unittile(a3,a3,a3)
unittile(a3,a3,a3)
unittile(a8,a8,a8,a8,a8,a8,a8,a8)
unittile(a3,a3,a3)
unittile(a3,a3,a3)
unittile(pi,c4,pi,pi,c4,pi,*2)
unittile(a3,a3,a3)
unittile(a3,a3,a3)
unittile(a8,a8,a8,a8,a8,a8,a8,a8)
unittile(a3,*3)
unittile(a3,*3)
conway("(0 1'')(0' 3'')(0'' 1''')(2'' 0''')(4'' 2''')(5'' 0@4)(6'' 0@6)(7'' 1@4)(2@4 1@5)(0@5 1@6)(2@5 2@6)(3@5 0@7)(4@5 5@8)(5@5 0@11)(6@5 1@8)(7@5 1@7)(2@7 0@8)(2@8 2@10)(3@8 4@11)(4@8 1@9)(0@9 1@11)(2@9 3@11)(1@10 5@11)(0@10 7@11)(2@11 0@12)(6@11 0@13)")

View File

@ -0,0 +1,18 @@
## 12356_0_6329 A3+A8+C4 complex example (8 vertices, 16 edges), simplified using mirrors
h2.
distunit(arcmedge(3,3,8,8))
let(a3=regangle(1,3))
let(a8=regangle(1,8))
let(c4=regangle(3,4))
unittile(a3,*3)
unittile(a8,a8,a8,a8,a8,a8,a8,a8,|4)
unittile(a3,a3,a3,|0)
unittile(a3,a3,a3,|1)
unittile(a8,a8,a8,a8,a8,a8,a8,a8,|2)
unittile(a3,a3,a3,|0)
unittile(a3,a3,a3,|1)
unittile(pi,c4,pi,pi,c4,pi,*2,|0)
unittile(a3,a3,a3)
unittile(a8,a8,a8,a8,a8,a8,a8,a8,|0)
unittile(a3,*3)
conway("(0 1')(0' 1'')(2' 0'')(5' 0''')(6' 0@5)(2''' 1@4)(0@4 1@5)(3@4 0@6)(4@4 5@7)(5@4 0@9)(2@6 0@7)[2@7 1@8](3@7 4@9)(0@8 1@9)(2@8 3@9)(2@9 0@10)")

View File

@ -35,13 +35,19 @@ A typical tes file consists of the following parts:
Some tessellations include tiles with rotational symmetry. For example, in the standard HyperRogue tiling
(bitruncated {7,3}), the heptagonal tiles have 7-fold rotational symmetry, and the hexagonal tiles have 3-fold
rotational symmetry. In this case, it is convenient to not give an index to every edge of every tile, but only
rotational symmetry. (We mean symmetries not only of the tile itself, but of the whole tiling.)
In this case, it is convenient to not give an index to every edge of every tile, but only
to the part which repeats (i.e., heptagons have 7 edges of index 0, and hexagons have 3 edges of index 0 and
3 edges of index 1).
Such situation can be defined with e.g. `tile(e0, a0, e1, a1, *3)` (this defines a hexagon with edges e0,e1,e0,e1,e0,e1
and angles a0,a1,a0,a1,a0,a1; edges are indexed with 0,1,0,1,0,1).
For mirror symmetries, use e.g. `tile(e0, a0, e1, a1, e2, a2, |2)`, which means that the tile has mirror symmetry,
and edge i is the mirror image of tile 2-i. (For simplicity, you still need to write all the edge lengths and angles
in this case, even if mirror symmetry could theoretically be used to infer some of this information.)
When both rotational and mirror symmetries exist, put `*` before `|`.
You can also use `repeat(tile_index, qty)` to make every edge index of tile tile_index repeat qty times, for example,
`tile(e0, a0, e1, a1, e2, a2) repeat(0, 3)` has the same effect as tile(e0, a0, e1, a1, *3).