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.

Algoritmo de refinamiento de bordes de la estructura de datos DCEL (casos especiales)

Estoy tratando de conectar dos polígonos que están descritos como una estructura de datos DCEL y me resulta difícil hacerlo en algunos casos en los que, por ejemplo, los bordes se interceptan entre sí en su interior o se superponen entre sí.

Aquí está la definición del problema:
– Los polígonos tienen forma rectangular con bordes rectos (los bordes en los vértices forman ángulos rectos)
– No hay más de 8 bordes que se encuentran en el vértice. El único caso en que es posible es que los 4 polígonos se encuentren en un solo vértice (también conocido como 4 rectángulos)
– Es imposible tener más de 2 bordes que se intersecten en su interior
– Es imposible que los polígonos se crucen fuera de los segmentos. Todas las intersecciones se realizan en los bordes y todas ellas son una mezcla de casos de superposición o intersecciones interiores.
– No hay agujeros en los polígonos.
– No se permite disolver las caras internas. El borde entre ellas aún debe estar presente.

Si esto ayuda, los polígonos representan regiones imaginarias cerradas bajo el país imaginario, por eso se encuentran solo en los bordes.

Aquí hay algunos ejemplos de polígonos:

Caso 1:

[Bordes superpuestos] (https://i.stack.imgur.com/PkvbT.png)

Caso 2:

[Un borde contiene a otro] (https://i.stack.imgur.com/HSyT1.png)

PD: En este momento estoy leyendo “Computational Geometry” de Berg y tratando de practicar la implementación DCEL.

PPD: Además, he leído mucha información en Internet sobre cómo manejar superposiciones de subdivisiones, pero no he visto una explicación sobre cómo manejar estos casos. Lo que creo aquí es que necesito manejar la eliminación de bordes mientras que Berg no lo menciona en su libro.

También hay una fuente adicional: el mismo libro de Berg, pero con imágenes más llamativas.

https://cw.fel.cvut.cz/b201/_media/courses/cg/lectures/09-intersect-split.pdf (p. 26/96)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en SIG y geometría computacional, comprendo los desafíos de conectar dos polígonos que se describen como una estructura de datos DCEL. El problema que has descrito es bastante complejo, ya que implica varios casos en los que los bordes se intersectan en su interior o se superponen entre sí.

    Según la definición del problema, los polígonos tienen forma rectangular con bordes rectos y no hay agujeros en ellos. Es imposible que más de 2 bordes se crucen en su interior, y todas las intersecciones se realizan en los bordes. Además, en este caso no se permite disolver las caras internas, por lo que el borde entre ellos debe estar presente.

    Para manejar estos casos, es posible que necesites manejar la eliminación de bordes al implementar la estructura de datos DCEL. El libro de Berg sobre Geometría Computacional proporciona información útil sobre cómo manejar casos de superposición de subdivisiones. Además, puedes consultar la conferencia de Berg sobre “intersect-split”, donde explica el proceso de resolver intersecciones entre subdivisiones.

    Basándonos en los ejemplos que proporcionaste, donde los bordes se superponen y uno contiene a otro, debes implementar un algoritmo que pueda manejar estos casos. Una posible aproximación podría ser utilizar un algoritmo de línea de barrido que recorra los bordes de los polígonos y detecte eficientemente cualquier intersección. El algoritmo puede aplicar las reglas correspondientes para dividir los bordes y conectar los polígonos.

    En conclusión, la conexión de polígonos descritos como una estructura de datos DCEL puede ser desafiante en algunos casos, especialmente cuando los bordes se intersectan en su interior o se superponen entre sí. Sin embargo, mediante la implementación de un algoritmo adecuado, puedes manejar estos casos y conectar eficazmente los polígonos.

Comments are closed.