2011-10-16 23 views
8

Busco un algoritmo que puede generar algo parecido a lo que hay en esta imagen:¿Cómo creo una ruta aleatoria?

enter image description here

He leído acerca de los algoritmos de pie ebrios, pero que no parecen encajar exactamente lo que necesito. No estoy seguro si puedo lograr lo que estoy buscando con un algoritmo de caminata borracho muy modificado o si debería buscar algún otro algoritmo con el que meterme.

+0

La ruta en esa imagen no parece cruzarse. ¿Es eso importante para tu aplicación? –

+0

@TedHopp Sí, es importante que la ruta no se cruce solo. – Talon876

+3

Lo que quiere es lo que se llama una caminata de evitación de Randow, generalmente abreviado como SAW. Busque Google y encontrará varios métodos de generación, ya que es un tema bien estudiado y muy importante en física, química y biología. El ADN, los polímeros y otros fenómenos están relacionados con este tipo de cosas. No espere encontrar algoritmos fáciles y eficientes ... –

Respuesta

1

Dado que desea evitar la autointersección, una caminata aleatoria será difícil de realizar correctamente. Podrías fácilmente arrinconarte en una esquina. Sugeriría comenzar con un único segmento de línea que cruza el área, luego dividir este segmento de línea en algún lugar en el medio y desplazar el punto medio en una cantidad aleatoria proporcional a la longitud del segmento de línea. Repita este proceso recursivamente para los dos nuevos segmentos de línea. Si termina con un punto medio que hace que uno de los dos nuevos segmentos de línea crucen un segmento de línea existente, intente con un punto medio diferente. Detenga la recursión cuando los segmentos de su línea son cortos (como quiera que quiera definir eso).

Cuestiones relacionadas