Método para la combinación de cuadrados tejados definidos como puntos en vectores

StackOverflow https://stackoverflow.com/questions/2482756

  •  21-09-2019
  •  | 
  •  

Pregunta

Si cuadrados de baldosas I, y los cuadrados se pueden definir por sus coordenadas, ¿cómo puedo simplificar formas hechas de múltiples plazas en vectores que definen cada borde de la totalidad de la forma? Pseudo-código o términos generales están bien.

Diagrama

¿Fue útil?

Solución

Lo primero que se me ocurre es (probablemente no es la forma más económica):

1) Obtener el cuadro delimitador de todo su suelo de baldosas - que es min (x), min (y) a max (x), max (y) para todo x e y de sus azulejos

2) Para cada fila, comenzar con ESTADO == VACÍO, iterar sobre cada columna: cambios de estado a la plena cuando se pulse un cuadrado, y vacío cuando se encuentra un agujero. Cada estado del tiempo de vacío a lleno, guardar el segmento de línea de mano izquierda de ese cuadrado y cada vez ESTADO va de lleno a vacío, guardar el segmento de línea de mano derecha de ese cuadrado.

3) Repetir anteriormente en el eje Y

Ahora usted tiene un conjunto que sólo contiene los segmentos de línea más exteriores, se pueden combinar las que son co-lineales, etc y obtener la forma general.

Esto funcionará para formas no convexos y también si tiene agujeros en su suelo de baldosas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top