Una vez me dieron la tarea de escribir un programa para rellenar un área rectangular bastante uniformemente con un "garabato", una línea curva que no se interseca por sí misma. Mi primer intento fue generar puntos aleatorios dentro del rectángulo y tratar de encontrar un recorrido por ellos (no necesariamente el más corto absoluto). Desafortunadamente, este enfoque no funcionó muy bien y lo abandoné.
hice resolver el problema en el final, sin embargo:
Mi método exitoso no estaba relacionada con el TSP, pero para los curiosos Lo resumiré:
de inicio con una sola línea segmento. Ahora bucle: si una línea es "demasiado larga", divídala en dos. Mueva cada punto un poco al azar, pero haga que los puntos se repelan entre sí. Termine el ciclo cuando se puede hacer poco progreso. Hay detalles, pero espero que entiendas la idea.
Por supuesto, esto produce una trayectoria angular (que hubiera sido aceptable) pero es fácil convertir las esquinas en arcos suaves.
Y sí, guardé el código.
¿Entonces está diciendo que es útil si usted es un vendedor ambulante de vacío? –
Tengo ganas de rechazar una respuesta que no es más que una broma sarcástica, pero no lo haré, ya que he sido culpable de lo mismo una o dos veces. – Karl