Cálculo de la frontera de Voronoi

Una vez que hemos calculado las particiones en el plano de Voronoi vamos a sacar las fronteras de las mismas. La frontera es el punto donde se pasa de un polígono a otro.

Partiendo del caso anterior calcular una frontera es simple, una frontera es aquel individuo que tiene algún vecino de un color/tipo diferente. Así de sencillo es calcular la fronteras en un autómata celular. Si alguno de los vecinos es distinto estoy en una frontera.

    this.isBorder = false;
    for(var i = 0; i < neighbors.length; ++i){
      if(neighbors[i].creature.point != this.point){
        this.isBorder = true;
    }

Cuando se ejecuta la demo se puede ver como las fronteras van creciendo extendiéndose hasta que chocan con otras fronteras y dejan de avanzar. El resultado final lo pongo en la imagen, en ella se pueden ver las fronteras de los polígonos en color negro.

Unos de los problemas que se pueden ver es que la frontera ocupa dos celdas de ancho. Esto se debe a que realmente la frontera es lo que pasa entre ambas celdas, pero lo que se está coloreando son las celdas que están en la frontera, es decir el vecino que esta a cada lado de la misma.

Puedes ver un vídeo sobre como funciona en mi canal de Youtube:

Haz click para ver el vídeo en mi canal de Youtube