geometría computacional: doubly connected edge list (dcel)
TRANSCRIPT
Geometría Computacional: DCEL
Maikel Arcia
Miguel Sancho
Ríos
Calles
Ejemplo: Toma de Desiciones Regionales
Ríos
Calles
Ejemplo: Toma de Desiciones Regionales
Posibles Puentes
Ríos
Calles
Posibles Puentes
Posibles áreas para
el desarrollo de
Granjas Productoras
de Leche.
Ejemplo: Toma de Desiciones Regionales
¿ Qué áreas pueden quedar incomunicadas por el crecimiento de los ríos?
¿ Qué aéreas potenciales para el desarrollo del ganado están bajo propiedad campesina ?
¿ Qué puentes son necesarios construir o reparar ?
Ejemplo: Toma de Desiciones Regionales
Problema: Organizar la Información de un mapa
Los trazos de un mapa pueden ser curvos.
Problema: Organizar la Información de un mapa
Los trazos de un mapa pueden ser curvos.
Problema: Organizar la Información de un mapa
Los trazos de un mapa pueden ser curvos.
Las curvas pueden ser representadas por secuencias de pequeños segmentos.
Problema: Organizar la Información de un mapa
¿Existe alguna relación entre los segmentos que representan el mapa?
Estructura candidata: Grafos.
Problema: Organizar la Información de un mapa
¿Existe alguna relación entre los segmentos que representan el mapa?
Estructura candidata: Grafos.
Los extremos de los segmentos deben estar conectados.
Problema: Organizar la Información de un mapa
Los grafos solo guardan información sobre los vértices y las aristas que los conectan.
Problema: ¿Cómo determinar las áreas adyacentes a un área determinada?
Problema: Organizar la Información de un mapa
Los grafos solo guardan información sobre los vértices y las aristas que los conectan.
Problema: ¿Cómo determinar las áreas adyacentes a un área determinada?
Problema: Organizar la Información de un mapa
Las áreas o caras del grafo pueden requerir estar etiquetadas con alguna característica.
Terreno Irregular
Llanura
Zona Húmeda
? Llanos Húmedos
? Terrenos IrregularesHúmedos
Las etiquetas de las caras resultantes de un solapamiento de mapas son combinaciones de las etiquetas de las caras que se solapan.
Problema: Organizar la Información de un mapa
Las áreas o caras del grafo pueden requerir estar etiquetadas con alguna característica.
Terreno Irregular
Llanura
Zona Húmeda
? Llanos Húmedos
? Terrenos IrregularesHúmedos
Las etiquetas de las caras resultantes de un solapamiento de mapas son combinaciones de las etiquetas de las caras que se solapan.
Problema: Organizar la Información de un mapa
Los mapas no son un conjunto de segmentos, sino un conjunto de áreas etiquetadas por su características tipológicas.
Su representación debe permitir realizar operaciones de manera eficiente y tales como:
Determinar los límites de un área.
Conocer las áreas adyacentes a una cara.
Determinar las caras que confluyen en un vértice.
Determinada por un grafo planar.
Es conexa si el grafo es conexo
Los nodos del grafo son considerados vértices y los arcos aristas
Las caras están delimitadas por las aristas y los vértices
Las caras pueden presentar huecos
Mapas como una Subdivición Planar
Determinada por un grafo planar.
Es conexa si el grafo es conexo
Los nodos del grafo son considerados vértices y los arcos aristas
Las caras están delimitadas por las aristas y los vértices
Las caras pueden presentar huecos
Mapas como una Subdivición Planar
Vértice
Cara
AristaHueco
Subdivisión
no conexa
Geometría ComputacionalGeometría Computacional
DCEL : Doubly-Conected Edge List
Estructura de datos espacial para representar subdivisiones planares.
Contiene una referencia por cada cara, arista y vértice de una subdivisión.
Para cada referencia se almacena información
Geométrica: Coordenadas.
Topológica: Relación Vértices –Aristas.
Adicional: Etiquetas de las Caras.
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
ePrev(e)
Next(e)
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
ePrev(e)
Next(e) Las aristas delimitan las caras. ¡Pero cada arista delimita dos caras!
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
ePrev(e)
Next(e) Las aristas delimitan las caras. ¡Pero cada arista delimita dos caras!
Cada arista estará compuesta por dossemiaristas gemelas orientadas en sentidos opuestos.
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
ePrev(e)
Next(e) Las aristas delimitan las caras. ¡Pero cada arista delimita dos caras!
Cada arista estará compuesta por dossemiaristas gemelas orientadas en sentidos opuestos.
Twin(e)
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
Cada arista tiene una referencia a su arista previa y siguiente.
ePrev(e)
Next(e) Las aristas delimitan las caras. ¡Pero cada arista delimita dos caras!
Cada arista estará compuesta por dossemiaristas gemelas orientadas en sentidos opuestos.
Twin(e)
Incluso la cara infinita estará delimitada por semiaristas.
Geometría ComputacionalGeometría Computacional
Caras y Huecos
Geometría ComputacionalGeometría Computacional
Caras y Huecos
El límite exterior de la cara se recorre en sentido anti horario.
Geometría ComputacionalGeometría Computacional
Caras y Huecos
El límite exterior de la cara se recorre en sentido anti horario.
El límite interior delimita un hueco y es recorrido en sentido horario.
Geometría ComputacionalGeometría Computacional
Caras y Huecos
El límite exterior de la cara se recorre en sentido anti horario.
El límite interior delimita un hueco y es recorrido en sentido horario.
La cara debe tener referencias a los límites interiores y al exterior.
Geometría ComputacionalGeometría Computacional
Caras y Huecos
El límite exterior de la cara se recorre en sentido anti horario.
El límite interior delimita un hueco y es recorrido en sentido horario.
La cara debe tener referencias a los límites interiores y al exterior.
Geometría ComputacionalGeometría Computacional
El concepto de hueco es relativo
Geometría ComputacionalGeometría Computacional
El concepto de hueco es relativo
Registro Vértices: v
Coordenas del vértice
IncidentEdge(v) : Referencia a una semiarista que tiene como origen al vértice v.
Registro de Caras: f
OuterComponent(f) : Referencia a una semiarista del límite exterior.
InnerCompoment(f) :Tantas referencias a semiaristascomo huecos tenga la cara.
Geometría ComputacionalGeometría Computacional
g
Estructura de la DCEL
Registro semiaristas: e
Origin(e) : Referencia al vértice origen.
Twing(e) : Referencia a su arista gemela.
IncidentFace(e) : Referencia a la cara que delimita
Prev(e) : Referencias a la semiarista anterior.
Next(e) : Referencias a la semiarista siguiente.
Geometría ComputacionalGeometría Computacional
Estructura de la DCEL
Geometría ComputacionalGeometría Computacional
g
Estructura de la DCEL: Ejemplo
Geometría ComputacionalGeometría Computacional
g
Estructura de la DCEL: Ejemplo
Geometría ComputacionalGeometría Computacional
g
Estructura de la DCEL: Ejemplo
Geometría ComputacionalGeometría Computacional
g
Estructura de la DCEL: Ejemplo
Geometría ComputacionalGeometría Computacional
g
Estructura de la DCEL: Ejemplo
Geometría ComputacionalGeometría Computacional
g
Estructura de la DCEL: Ejemplo
¿Por qué basta con que un vértice tenga solo una referencia a una semiarista que lo tenga como origen?
Dado un vértice
¿Cómo recorrer todas las semiaristas incidentes?
¿Cómo recorrer todas las caras incidentes?
Geometría ComputacionalGeometría Computacional
Estructura de la DCEL
¿Por qué es necesario que cada cara tenga una referencia por cada componente interior?
Dada una cara
¿Cómo saber cuantas aristas delimitan sus bordes?
¿Cómo recorrer todas caras adyacentes?
Geometría ComputacionalGeometría Computacional
Estructura de la DCEL
¿Por qué solo es necesario que cada semiarista tenga una referencia a su vértice de origen?
Dada una semiarista
¿Cómo saber el vértice de llegada?
¿Cómo saber si se encuentra en un límite interior o en un límite exterior?
Geometría ComputacionalGeometría Computacional
Estructura de la DCEL
Del libro de texto Computational Geometry, Algorithms and Applications
Estudiar Epígrafe 2.2, pág. 29
Realizar los ejercicios 2.5 – 2.9, pág. 42.
Geometría ComputacionalGeometría Computacional
Estudio independiente
Bibliografía base
MM. de Berg, M. van Kreveld, M. Overmars, O. Schawarzkopf: Computational Geometry, Springer Verlag, 1997.
Geometría ComputacionalGeometría Computacional