es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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í:

Imagen

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.

Tags:  , ,

Answer

  1. Avatar for 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:

    1. Cree una clase de quadtree que divida su mundo en cuatro cuadrantes iguales de forma recursiva.
    2. Almacene los polígonos como objetos en los nodos del quadtree. Cada nodo estará vacío o contendrá un polígono.
    3. Recorra el quadtree para comprobar los polígonos encerrados por las calles. Si una calle se cruza con un polígono, almacene el polígono en el nodo del quadtree.
    4. Una vez que se hayan generado todas las calles, recorra el quadtree para extruir en el eje z todos los polígonos encapsulados por las calles.

    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.

Comments are closed.