Este artículo describe, paso a paso, cómo generar regiones finitas de los mosaicos no periódicos de Roger Penrose formados por cometas (kites) y dardos (darts) utilizando el paquete Diagrams de Haskell. El trabajo surge de una colaboración con Stephen Huggett sobre propiedades matemáticas de estos teselados y se apoya en el paquete PenroseKiteDart, disponible en Hackage.
El texto comienza explicando la geometría básica de las dos piezas. Todas las aristas son múltiplos de la razón áurea φ, y todos los ángulos son múltiplos de π/5 (36 grados). Para impedir patrones periódicos, las piezas deben colocarse de forma que en cada vértice concurran o todas las marcas rojas (indicadoras de la orientación de cada mitad de baldosa) o ninguna, lo que descarta el rombo simple.
La representación interna se basa en HalfTile, un tipo con cuatro constructores: LD, RD, LK y RK. Cada medio-tile se modela como una lista de dos vectores 2D que recogen sus aristas exteriores. A partir de ahí se definen funciones para dibujar bordes, uniones, contornos completos, rellenos de color y transformaciones (rotación y escalado) aplicables a cada pieza.
El artículo introduce también el concepto de Patch, una lista de piezas situadas en el plano mediante un punto 2D, que sirve como bloque constructivo para ensamblar regiones arbitrarias del mosaico. En conjunto, se trata de una guía técnica y práctica para investigadores y aficionados a la geometría que quieran visualizar y experimentar con los teselados de Penrose desde Haskell, con el apoyo de un paquete reutilizable.
