Marta me envió este video. Así me queda cuando lo intento:
No tengo el pulso para eso.
Anoche intenté armar algo para hacer esos diseños de espirales en el computador. Asumamos que tenemos un polígono definido por sus vértices (en un orden para dibujarlo.) Digamos un cuadrado:
Por ejemplo, así se ve nuestro polígono original con los cuatro primeros trazos de la espiral:
Y eso con 240 trazos:
Algo que vale la pena resaltar es que los polígonos deben ser definidos en orden, a menos que se busque este tipo de efectos:
Me recuerdan manualidades con clavos e hilos de colores que hacía cuando era pequeño.
Después de resolver este problema, intenté armar diseños a mano y después codificarlos. Este fue uno:
En código luce así:
Y se ve así:
Lo siguiente fue jugar con técnicas que permiten teselar el plano con polígonos convexos, por ejemplo la triangulación de Delaunay:
Esto se ve así:
Pero algo que no me gusta de las triangulaciones de Delaunay es que son, precisamente, triangulaciones. El diagrama de Voronoi (dual de la triangulación de Delaunay) genera teselaciones con polígonos convexos de diferentes números de lados (aunque sin mayor control, y se definen centroides en lugar de vértices de los polígonos):
Así se ve:
Y aquí otro del que perdí la semilla y configuración aunque el efecto me gustó:
Hay otro detalle aleatorio que no he mencionado: los polígonos se pueden recorrer en el sentido de las manecillas del reloj o el opuesto. Dependiendo de como se defina, el diagrama luce ligeramente distinto.
En general, me gustaría tener un algoritmo decente (no necesariamente óptimo) que, dado un conjunto de puntos, calculara una teselación con polígonos convexos que usen los todos los puntos como vértices de tal forma que los polígonos tengan el mayor número de lados posible. No sé si exista una solución buena a ese problema. Tal vez busque después.