Hyperbolic Tiling {p,q}: Generating {p,q} regular mosaics in GeoGebra

Hyperbolic Tiling {p,q}: Generating {p,q} regular mosaics in GeoGebra
Loading the math board and drawing, please wait…
2025-08-19 02:08
In collections Teselaciones regulares
This example demonstrates how to construct a regular hyperbolic tiling specified by the Schläfli symbol {p,q}, producing a mosaic that grows outward from an initial seed and can be animated to observe the propagation. The key mathematics includes hyperbolic geometry tilings, the meaning of {p,q} (each vertex is surrounded by q p-gons), geometric constraints captured via circle and arc relations, a

GeoGebra Commands & Parameters

  1. Circle((0, 0), 1) → c
  2. Intersect(Circle[((1 - (sin(pi / p) / cos(pi / q))^(2))^(-1 / 2), 0), ((cos(pi / q) / sin(pi / p))^(2) - 1)^(-1 / 2)], Ray[(0, 0), Rotate[(1, 0), pi / p]], 1) → P0
  3. Sequence(Rotate[P0, ((k * 2) * pi / p)], k, 0, p - 1) → V
  4. Circle(Mirror[V(p), c], V(p), V(1)) → hc1
  5. Polygon(pV) → actualp
  6. Flatten(Join[{{Vac(p)}, {Vac \ {Vac(p)}}}]) → Vacp
  7. Flatten(Join[{{Vac \ {Vac(1)}}, {Vac(1)}}]) → Vac2
  8. Intersect(hc1, Ray[(V(1) + V(p)) / 2, (0, 0)]) → V0,
  9. CircumcircleArc(V(p), V0, V(1)) → arcoCelda
  10. Join(Sequence[Rotate[Sequence[Point[arcoCelda, s], s, 0, 0.9, 0.1], ((2 * k) * pi / p)], k, 0, p - 1]) → celda0
  11. Polygon(celda0) → pol
  12. Sequence({Vac(k), q - 1, ncActual}, k, 3, p - 1) → Vplus
  13. If(floor(p / 2) ≠ p / 2 ∧ q ≟ 3, 4, floor(q / 2) ≟ q / 2, 2, 3) → nc
  14. Sequence({V(k), q - 1, 0}, k, 1, p) → vert0
  15. Flatten(Join[{{Vac \ {Vac(1), Vac(2)}}, {Vac(1), Vac(2)}}]) → Vac2'
  16. Flatten(Join[{{Vac(p - 1), Vac(p)}, {Vac \ {Vac(p - 1), Vac(p)}}}]) → Vacp'