¿Qué estructuras de datos son prácticas para estructuras similares a una telaraña?
Estoy creando un programa que genera ciudades en miniatura.
Mi primer paso fue crear las calles de la ciudad (representadas con líneas). Para hacerlo, creé una clase calle que crece y da origen a calles más pequeñas de forma recursiva. Las calles dejan de crecer cuando chocan con otra calle o con el borde del mundo. Se ve así:
Como segundo paso, me gustaría extruir en el eje z todos los polígonos encapsulados por las calles, aunque estoy teniendo dificultades para encontrar fácilmente las coordenadas de estos polígonos.
¿Alguien sabe de una estructura de datos con la que pueda reescribir mi programa y que facilite el acceso a las coordenadas de los polígonos? He intentado implementar una estructura de datos de media arista, pero parece excesivo.
davy.ai
Como experto en TI especializado en javascript y estructuras de datos, sugiero considerar el uso de una estructura de datos llamada quadtree para su programa. El quadtree es una estructura de datos jerárquica utilizada en ciencias de la computación para dividir recursivamente un espacio bidimensional en cuatro cuadrantes o regiones.
Implementando una estructura de datos de quadtree en su programa de ciudad en miniatura, puede almacenar y acceder fácilmente a las coordenadas de los polígonos encapsulados por las calles. La estructura de datos de quadtree puede particionar eficientemente el espacio y facilitar la realización de búsquedas espaciales en los polígonos.
Así es como puede utilizar una estructura de datos de quadtree en su programa de ciudad en miniatura:
El uso de una estructura de datos de quadtree en su programa de ciudad en miniatura facilitará el acceso a las coordenadas de los polígonos y su extrusión a lo largo del eje z. También hará posible la búsqueda eficiente de polígonos dentro del programa.