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 Irregulares
Hú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 Irregulares
Hú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
Arista
Hueco
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.
e
Prev(e)
Next(e)
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
 Cada arista tiene una
referencia a su arista
previa y siguiente.
e
Prev(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.
e
Prev(e)
Next(e) Las aristas delimitan las
caras. ¡Pero cada arista
delimita dos caras!
 Cada arista estará
compuesta por dos
semiaristas gemelas
orientadas en sentidos
opuestos.
Geometría ComputacionalGeometría Computacional
Lista Doblemente Conectada
 Cada arista tiene una
referencia a su arista
previa y siguiente.
e
Prev(e)
Next(e) Las aristas delimitan las
caras. ¡Pero cada arista
delimita dos caras!
 Cada arista estará
compuesta por dos
semiaristas 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.
e
Prev(e)
Next(e) Las aristas delimitan las
caras. ¡Pero cada arista
delimita dos caras!
 Cada arista estará
compuesta por dos
semiaristas 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 semiaristas
como 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

Geometría computacional: Doubly Connected Edge List (DCEL)

  • 1.
  • 2.
    Ríos Calles Ejemplo: Toma deDesiciones Regionales
  • 3.
    Ríos Calles Ejemplo: Toma deDesiciones Regionales  Posibles Puentes
  • 4.
    Ríos Calles  Posibles Puentes Posiblesáreas para el desarrollo de Granjas Productoras de Leche. Ejemplo: Toma de Desiciones Regionales
  • 5.
     ¿ 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
  • 6.
    Problema: Organizar laInformación de un mapa  Los trazos de un mapa pueden ser curvos.
  • 7.
    Problema: Organizar laInformación de un mapa  Los trazos de un mapa pueden ser curvos.
  • 8.
    Problema: Organizar laInformación de un mapa  Los trazos de un mapa pueden ser curvos.  Las curvas pueden ser representadas por secuencias de pequeños segmentos.
  • 9.
    Problema: Organizar laInformación de un mapa  ¿Existe alguna relación entre los segmentos que representan el mapa?  Estructura candidata: Grafos.
  • 10.
    Problema: Organizar laInformació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.
  • 11.
    Problema: Organizar laInformació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?
  • 12.
    Problema: Organizar laInformació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?
  • 13.
    Problema: Organizar laInformació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 Irregulares Húmedos  Las etiquetas de las caras resultantes de un solapamiento de mapas son combinaciones de las etiquetas de las caras que se solapan.
  • 14.
    Problema: Organizar laInformació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 Irregulares Húmedos  Las etiquetas de las caras resultantes de un solapamiento de mapas son combinaciones de las etiquetas de las caras que se solapan.
  • 15.
    Problema: Organizar laInformació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.
  • 16.
     Determinada porun 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
  • 17.
     Determinada porun 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 Arista Hueco Subdivisión no conexa
  • 18.
    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.
  • 19.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente.
  • 20.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente.
  • 21.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente.
  • 22.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente.
  • 23.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente.
  • 24.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente. e Prev(e) Next(e)
  • 25.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente. e Prev(e) Next(e) Las aristas delimitan las caras. ¡Pero cada arista delimita dos caras!
  • 26.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente. e Prev(e) Next(e) Las aristas delimitan las caras. ¡Pero cada arista delimita dos caras!  Cada arista estará compuesta por dos semiaristas gemelas orientadas en sentidos opuestos.
  • 27.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente. e Prev(e) Next(e) Las aristas delimitan las caras. ¡Pero cada arista delimita dos caras!  Cada arista estará compuesta por dos semiaristas gemelas orientadas en sentidos opuestos. Twin(e)
  • 28.
    Geometría ComputacionalGeometría Computacional ListaDoblemente Conectada  Cada arista tiene una referencia a su arista previa y siguiente. e Prev(e) Next(e) Las aristas delimitan las caras. ¡Pero cada arista delimita dos caras!  Cada arista estará compuesta por dos semiaristas gemelas orientadas en sentidos opuestos. Twin(e)  Incluso la cara infinita estará delimitada por semiaristas.
  • 29.
  • 30.
    Geometría ComputacionalGeometría Computacional Carasy Huecos  El límite exterior de la cara se recorre en sentido anti horario.
  • 31.
    Geometría ComputacionalGeometría Computacional Carasy 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.
  • 32.
    Geometría ComputacionalGeometría Computacional Carasy 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.
  • 33.
    Geometría ComputacionalGeometría Computacional Carasy 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.
  • 34.
  • 35.
  • 36.
     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 semiaristas como huecos tenga la cara. Geometría ComputacionalGeometría Computacional g Estructura de la DCEL
  • 37.
     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
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
     ¿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
  • 45.
     ¿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
  • 46.
     ¿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
  • 47.
     Del librode 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
  • 48.
    Bibliografía base MM. deBerg, M. van Kreveld, M. Overmars, O. Schawarzkopf: Computational Geometry, Springer Verlag, 1997. Geometría ComputacionalGeometría Computacional