Gracias por el A2A, Mark! Aquí está mi método de fuerza bruta feo y torpe:
- Para cada elemento ‘on’ en la matriz, asigne 4 líneas de vértices de coordenadas 2D para representar ese elemento de la matriz. El elemento [0,0] podría ser (0,0) -> (1,0), (1,0) -> (1,1), (1,1) -> (0,1) y (0, 1) -> (0,0). Agregue estos a una estructura de datos que tenga un buen tiempo de búsqueda.
- Eliminar todas las líneas duplicadas. Si tiene duplicados, eso significa que son bordes compartidos y son internos a la forma. Tendrá que verificar ambos vértices independientemente del orden, por lo tanto, haga una buena función de comparación.
- Haz conjuntos de polígonos. Nota: solo tiene que hacer esto si necesita / desea asegurar polígonos cerrados.
- Elimine con la primera línea, luego busque una línea que comience con el vértice final de su primera línea. Continúe hasta encontrar una línea que termine al comienzo de su primera línea.
- Esto puede requerir retroceder si busca y encuentra varias líneas que comienzan en un vértice final.
- Crea un polígono para tu conjunto cerrado. Repita hasta que se agoten todas las líneas.
- Si tiene polígonos no cerrados / polígonos incompletos, advierta a sí mismo.
- Dibuja tus líneas!
¡Buena suerte!
- ¿Cuál es el algoritmo de búsqueda utilizado por el motor de búsqueda de Google? ¿Cuál es su complejidad?
- ¿Puede enumerar algunos de los libros más importantes / definitivos sobre informática, algoritmos, diseño de software, estructuras de datos, redes?
- ¿Cómo funciona el algoritmo de adsorción?
- ¿Cuál es una buena explicación de la asignación de Dirichlet latente?
- ¿Cuál es el algoritmo detrás de la agregación de noticias de Facebook News alrededor de una palabra clave en particular?