Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este...

105
Triangulación de polígonos Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 26 de febrero del 2013 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 1 / 105

Transcript of Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este...

Page 1: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos

Dr. Eduardo A. RODRÍGUEZ TELLO

CINVESTAV-Tamaulipas

26 de febrero del 2013

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 1 / 105

Page 2: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

1 Triangulación de polígonosProblema de triangulación de polígonosPolígonos monótonosTriangulación de polígonos monótonosDivisión de un polígono en subpolígonos monótonosEjemplo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 2 / 105

Page 3: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos

El material de la clase de hoy está basado en el capítulo 3 del libro:Mark de Berg, Otfried Cheong, Marc van Kreveld and MarkOvermars. Computational Geometry: Algorithms and Applications.Springer, 3rd edition (April 16, 2008), ISBN-10: 3540779736.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 3 / 105

Page 4: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Triangulación es el problema general de subdividir un dominioespacial en símplexes (o simplices), lo que en el plano significatriángulos

Para triangular un polígono simple (cuyos lados no se intersectan)P es necesario dibujar diagonales entre pares de sus vértices

Una diagonal es un segmento de línea que conecta dos vértices deP y cae en el interior de dicho polígono

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 4 / 105

Page 5: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Polígono simple Triangulación

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 5 / 105

Page 6: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

De manera más formal la triangulación de un polígono es ladescomposición de éste en triángulos utilizando para ello elconjunto máximo de diagonales que no se intersectan

Se requiere que el conjunto de diagonales que no se intersectansea máximo para garantizar que ningún triángulo tenga un vérticedel polígono en el interior de una de sus aristas

Esto podría suceder si el polígono tiene tres vértices colinealesconsecutivos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 6 / 105

Page 7: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 7 / 105

Page 8: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Usualmente la triangulación de un polígono no es única

Por ejemplo, el polígono de la siguiente figura puede sertriangulado en al menos dos formas diferentes

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 8 / 105

Page 9: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Hay dos pregunta que surgen naturalmente:1 ¿Existe siempre una triangulación para un polígono?2 ¿Cuántos triángulos pueden existir en una triangulación?

El siguiente teorema responde a estas preguntas

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 9 / 105

Page 10: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

TeoremaTodo polígono simple admite una triangulación, y toda triangulaciónde un polígono simple con n vértices consiste exactamente de n− 2triángulos

PruebaProbaremos este teorema por inducción sobre n

En el caso trivial cuando n = 3 el polígono en sí mismo es untriángulo por lo que el teorema se cumple

Sea n > 3, asumamos que el teorema se cumple para toda m < n

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 10 / 105

Page 11: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Sea P un polígono con n vértices

Probaremos primero la existencia de una diagonal en P

Sea v el vértice más a la izquierda de P

Sean u y w los dos vértices vecinos de v en la frontera P

Si el segmento abierto uw cae en el interior de P , se ha encontradouna diagonal

De lo contrario, hay uno o más vértices dentro del triángulo4uvw, o en la diagonal uw

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 11 / 105

Page 12: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

De esos vértices, sea v′ el más alejado de la línea entre u y w

El segmento conectando v′ con v no puede intersectar una aristade P , porque tal arista tendrá un punto extremo dentro deltriángulo que está más lejos de la línea entre u y w, contradiciendola definición de v′

Por lo tanto, vv′ es una diagonal

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 12 / 105

Page 13: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Cualquier diagonal corta P en dos subpolígonos simples P1 y P2

Sea m1 el número de vértices de P1 y m2 el número de vértices deP2

Tanto m1 como m2 deben ser más pequeños que n, por inducciónP1 y P2 pueden entonces ser triangulados

Así que P puede también ser triangulado

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 13 / 105

Page 14: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Resta probar que cualquier triangulación de P consiste de n− 2triángulos

Para este fin, consideremos una diagonal arbitraria en algunatriangulación TP

Esta diagonal corta P en dos subpolígonos con m1 y m2 vértices,respectivamente

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 14 / 105

Page 15: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Cada vértice de P ocurre en exactamente uno de los dossubpolígonos, excepto por los vértices que definen la diagonal(ocurren en ambos subpolígonos)

Por lo tanto, m1 + m2 = n + 2

Por inducción, cualquier triangulación de Pi consiste de mi − 2triángulos, lo que implica que TP consiste de(m1 − 2) + (m2 − 2) = n− 2 triángulos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 15 / 105

Page 16: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

Existe un algoritmo simple que corre en tiempo polinomial pararesolver el caso planar del problema de triangulación

Sin embargo, en el caso general de poliedros no convexos endimensiones superiores los mejores algoritmos reportados correnen tiempo O(n log n)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 16 / 105

Page 17: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Problema de triangulación de polígonos

Problema de triangulación de polígonos

El algoritmo que vamos a presentar hoy es un proceso de dospasos

El primero consiste en convertir un polígono arbitrario en unacolección disjunta de polígonos monótonos

El segundo paso aplica un algoritmo de triangulación a cadapolígono monótono resultante del paso anterior

El primer paso toma un tiempo O(n)

El segundo paso corre en tiempo O(n log n), por lo que todo elalgoritmo tiene complejidad O(n log n)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 17 / 105

Page 18: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Polígonos monótonos

1 Triangulación de polígonosProblema de triangulación de polígonosPolígonos monótonosTriangulación de polígonos monótonosDivisión de un polígono en subpolígonos monótonosEjemplo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 18 / 105

Page 19: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Polígonos monótonos

Polígonos monótonos

Una cadena poligonal C se dice que es estrictamente monótonacon respecto a una determinada línea L, si cualquier línea que esortogonal a L intersecta C como máximo en un punto

Una cadena C es monótona con respecto a L si cada línea que esortogonal a L intersecta C en un solo componente conectado

Así, puede intersectar en un solo punto, o a lo largo de un solosegmento de línea.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 19 / 105

Page 20: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Polígonos monótonos

Polígonos monótonos

Ejemplo de una cadena monótona

a

b

cd

ef

L

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 20 / 105

Page 21: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Polígonos monótonos

Polígonos monótonos

Un polígono P se dice que es monótono con respecto a una líneaL, si su frontera (a veces denotada bnd(P) o ∂P), puede dividirseen dos cadenas, cada una de las cuales es monótona con respecto aL

Dicho de otra forma, un polígono P en el plano es llamadomonótono con respecto a una determinada línea L, si cualquierlínea que es ortogonal a L intersecta P , como máximo dos veces

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 21 / 105

Page 22: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Polígonos monótonos

Polígonos monótonos

Ejemplo de polígonos monótonos con respecto a una línea L

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 22 / 105

Page 23: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Polígonos monótonos

Polígonos monótonos

En lo sucesivo vamos a considerar la monotonía (monotonicidad)con respecto al eje x

Vamos a llamar a estos polígonos horizontalmente monótonos

Es fácil comprobar si un polígono es horizontalmente monótono

¿Cómo?

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 23 / 105

Page 24: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Polígonos monótonos

Polígonos monótonos

Los pasos a seguir son:1 Encontrar los vértices más a la izquierda y a la derecha del

polígono (i.e. aquellos con la mínima y máxima coordenada x), enun tiempo O(n)

2 Estos vértices permiten dividir la frontera del polígono en doscadenas, una cadena superior y una cadena inferior. Se camina a lolargo de estas cadenas de izquierda a derecha, verificando que lascoordenadas x sean no decrecientes. Esto toma un tiempo O(n).

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 24 / 105

Page 25: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

1 Triangulación de polígonosProblema de triangulación de polígonosPolígonos monótonosTriangulación de polígonos monótonosDivisión de un polígono en subpolígonos monótonosEjemplo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 25 / 105

Page 26: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Podemos triangular un polígono monótono mediante una simplevariación del método de barrido del plano

Empezamos con la suposición de que los vértices del polígonohan sido ordenados en orden creciente de sus coordenadas x

Para simplificar asumimos que no hay coordenadas x duplicadas.En caso contrario, se rompe el empate entre las cadenas superior einferior de forma arbitraria, y dentro de una cadena de modo queel orden de la cadena se preserve

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 26 / 105

Page 27: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Observemos que para realizar esto no se requiere hacer unordenamiento

Podemos simplemente extraer la cadena superior e inferior ycombinarlas (como se hace en el algoritmo MergeSort) en tiempoO(n)

La idea detrás del algoritmo de triangulación es muy simple:Tratar de triangular todo lo que se pueda a la izquierda del vérticeactual, añadiendo diagonales y retirar la región ya trianguladapara evitar considerarla más adelante

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 27 / 105

Page 28: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 28 / 105

Page 29: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 29 / 105

Page 30: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 30 / 105

Page 31: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 31 / 105

Page 32: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 32 / 105

Page 33: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 33 / 105

Page 34: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 34 / 105

Page 35: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Lo que hace este algoritmo eficiente es el hecho de que cuandollegamos a un vértice la región no triangulada que se encuentra ala izquierda de este vértice siempre tiene una estructura muysimple

Esta estructura nos permite determinar en tiempo constante si esposible añadir otra diagonal

Y, en general, podemos añadir cada diagonal adicional en tiempoconstante

Dado que cualquier triangulación consiste de n− 3 diagonales, elproceso se ejecuta en un tiempo total O(n)

Esta estructura es descrita en el lema siguiente

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 35 / 105

Page 36: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Lema (Invariante principal)

Para i ≥ 2, sea vi el vértice que acaba de ser procesado por elalgoritmo de triangulación. La región no triangulada situada a laizquierda de vi consiste de dos cadenas x-monótonas, una inferiory una superior, cada una con al menos una arista.

Si la cadena de vi a u tiene dos o más aristas, entonces estas aristasconstituyen una cadena reflejo (es decir, una secuencia de vérticescon todos los ángulos interiores de al menos 180 grados).

La otra cadena consta de una sola arista cuyo punto extremoizquierdo es u y cuyo punto extremo derecho se encuentra a laderecha de vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 36 / 105

Page 37: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Invariante inicial

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 37 / 105

Page 38: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Probaremos la invariante por inducción

Como caso base, consideremos el caso de v2. Aquí u = v1, unacadena consiste de una arista única v2v1 y la otra cadena consistede la otra arista adyacente a v1

Para demostrar la invariante principal, haremos un análisis decómo manejar el próximo evento que involucra a vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 38 / 105

Page 39: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Asumiremos que la invariante se mantiene en vi−1 y que ésta secumple después de que cada evento ha sido procesado

Existen los siguientes dos casos a los que el algoritmo debe hacerfrente:

1 vi cae en la cadena opuesta a la que pertenece vi−1

2 vi cae en la misma cadena que vi−1

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 39 / 105

Page 40: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Caso 1: vi cae en la cadena opuesta a la que pertenece vi−1

En este caso añadimos diagonales que unan vi a todos los vérticesen la cadena reflejo, desde vi−1 hasta u (pero sin incluirlo)

Tengamos en cuenta que todos estos vértices son visibles desde vi

Desde luego u es visible a vi

Porque la cadena es reflejo, x-monótona, y se encuentra a laizquierda de vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 40 / 105

Page 41: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Caso 1

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 41 / 105

Page 42: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Además, la cadena en si misma no puede bloquear la visibilidadde vi a otro vértice de la cadena

Por último, el hecho de que el polígono es x-monótono implicaque la parte sin procesar del polígono (que está a la derecha de vi)no puede “volver” y bloquear la visibilidad de la cadena

Después de hacer esto, fijamos u = vi−1

La invariante se mantiene, y la cadena reflejo es trivial puesconsiste de una sola arista vivi−1

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 42 / 105

Page 43: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Caso 2: vi cae en la misma cadena que vi−1

Caminamos de vuelta a lo largo de la cadena reflejo añadiendodiagonales uniendo vi a los vértices previos hasta queencontremos el primero que no sea visible a vi

Como puede verse en la siguiente figura, esto puede implicar:

a) Conectar vi a uno o más vértices

b) No conectar vi con ningún vértice adicional

Esto en función de si el primer ángulo es inferior o superior a 180grados

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 43 / 105

Page 44: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

Caso 2a Caso 2b

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 44 / 105

Page 45: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

En cualquier caso, los vértices que se han cortado por diagonalesya no están en la cadena, y vi se convierte en el nuevo puntoextremo de la cadena

Una vez más, de la x-monotonía se desprende que la parte sinprocesar del polígono no puede bloquear la visibilidad de vi a lacadena

Tengamos en cuenta que cuando se finaliza el resto de la cadenadesde vi a u es una cadena reflejo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 45 / 105

Page 46: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Triangulación de polígonos monótonos

¿Cómo se implementa esto?

Los vértices en la cadena reflejo pueden ser almacenados en unapila

Mantenemos una bandera que indica si la pila está en cadenasuperior o en la inferior, y asumimos que para cada nuevo vérticese sabe a qué cadena del polígono pertenece

Tengamos en cuenta que las decisiones acerca de la visibilidadpuede basarse simplemente en pruebas de orientacióninvolucrando vi y los dos primeros elemento de la pila

Cuando conectamos vi con una diagonal, se tiene que retirar unelemento de la pila

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 46 / 105

Page 47: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Análisis de complejidad

Hemos dicho que este algoritmo se ejecuta en tiempo O(n)

Como mencionamos anteriormente, la lista ordenada de vérticespuede construirse en un tiempo O(n) a través de la combinación(merge)

La cadena reflejo se almacena en una pila

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 47 / 105

Page 48: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Triangulación de polígonos monótonos

Análisis de complejidad

En un tiempo O(1) por cada diagonal, podemos realizar unaprueba de orientación para determinar si es necesario añadir ladiagonal

Suponiendo una lista de aristas doblemente conectada (DCEL) ladiagonal puede ser agregada en tiempo constante

Dado que el número de diagonales es n− 3, el tiempo total es O(n)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 48 / 105

Page 49: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

1 Triangulación de polígonosProblema de triangulación de polígonosPolígonos monótonosTriangulación de polígonos monótonosDivisión de un polígono en subpolígonos monótonosEjemplo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 49 / 105

Page 50: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Para poder ejecutar el algoritmo de triangulación antes descrito,en primer lugar hay que subdividir un polígono simple Parbitrario en polígonos monótonos

Esta tarea es también realizada con un enfoque de barrido delplano

A continuación describiremos los detalles de este algoritmo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 50 / 105

Page 51: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Imagínese caminando desde el vértice más a la izquierda de Phacia el vértice más a la derecha a lo largo de la cadena superior oinferior

Un vértice donde la dirección en la que caminamos cambia deizquierda a derecha o de derecha a izquierda es llamado unvértice de giro

Para subdividir P en piezas x-monótonas deben poderse procesarestos vértices especiales

Esto puede hacerse mediante la adición de diagonales

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 51 / 105

Page 52: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Vértice de giro

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 52 / 105

Page 53: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Si en un vértice de giro v, ambas aristas incidentes van hacia laderecha y el interior del polígono se encuentra localmente a laizquierda de v, entonces debemos elegir una diagonal que vahacia la izquierda desde v

Esta diagonal divide al polígono en dos

El vértice v aparecerá en ambas piezas

Además, en ambas piezas v tiene una arista que va hacia laderecha (es decir, sobre las aristas originales de P) y una aristaque va hacia la izquierda (la diagonal)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 53 / 105

Page 54: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Vértice de giro

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 54 / 105

Page 55: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Por lo tanto, v deja de ser un vértice de giro en cualquiera de losdos subpolígonos resultantes

Si las dos aristas incidentes de un vértice de giro van hacia laizquierda y en el interior del polígono se encuentra localmente ala derecha de él, tenemos que elegir una diagonal que va hacia laderecha

Esto parece indicar que hay diferentes tipos de vértices de giro.Vamos a ser más precisos en cuanto a este punto

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 55 / 105

Page 56: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Para definir correctamente los tipos de vértices de giro debemosponer mucha atención a los vértices con coordenadas x iguales

Para ello definiremos dos relaciones de orden, derecha e izquierdade la siguiente manera:

Un punto p está a la derecha de otro punto q si px > qx o px = qx ypy > qyUn punto p está a la izquierda de otro punto q si px < qx o px = qx ypy < qy

Esto resulta en que los eventos se procesen de arriba hacia abajo alo largo de la línea de barrido

Y tiene el mismo efecto que si giráramos (hipotéticamente) la líneade barrido infinitesimalmente a la derecha

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 56 / 105

Page 57: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Existen cinco tipos de vértices en un polígono P

Cuatro de ellos son vértices de giro: vértice de inicio, vértice final,vértice de división y vértices de combinación

Un vértice v es un vértice de inicio si sus dos vecinos seencuentran a la derecha de él y el ángulo interior en v es menorque 180◦ (π radianes)

Si el ángulo interior es mayor que 180◦ entonces v es un vértice dedivisión

Si los dos vecinos se encuentran a la derecha de v, entonces elángulo interior no puede ser exactamente 180◦

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 57 / 105

Page 58: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Un vértice es un vértice final si sus dos vecinos se encuentran a laizquierda de él y en el ángulo interior en v es menor que 180◦

Si el ángulo interior es mayor que 180◦ entonces v es un vértice decombinación

Los vértices que no son vértices de giro son vértices regulares

Así pues, un vértice regular tiene uno de sus vecinos a laizquierda de él, y el otro a la derecha

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 58 / 105

Page 59: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Tipos de vértices

InicioFinalRegularDivisionCombinacion

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 59 / 105

Page 60: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Estos nombres han sido seleccionados porque el algoritmo utilizaun barrido del plano de izquierda a derecha, manteniendo laintersección de la línea de barrido con el polígono

Cuando la línea de barrido llega a un vértice de división, uncomponente de la intersección se divide, cuando llega a un vérticede combinación, dos componentes se combinan, y asísucesivamente

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 60 / 105

Page 61: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Tanto los vértices de división como los de combinación sonfuentes de no monotonía local

LemaUn polígono es x-monótono si no tiene vértices de división o vérticesde combinación

Pueden consultar la demostración de este lema en el libro de Berget al.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 61 / 105

Page 62: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

El lema anterior implica que P se ha dividido en piezasx-monótonas una vez que logramos procesar su vértices dedivisión y de combinación

Esto lo hacemos al agregar una diagonal hacia la izquierda apartir de cada vértice de división

Y una diagonal hacia la derecha desde cada vértice decombinación

Desde luego, estas diagonales no se intersectan entre sí

Una vez que hayamos hecho esto, se logrará dividir P en piezasx-monótonas

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 62 / 105

Page 63: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Vamos a discutir primero el caso de un vértice de división (ambasaristas se encuentran a la derecha del vértice)

Cuando un vértice de división v es encontrado por la línea debarrido habrá una arista ea del polígono encima y una arista ebsituada abajo de él

Podemos considerar conectar el vértice de división al puntoextremo izquierdo de una de estas dos aristas, pero puede ser queningún punto extremo sea visible al vértice de división

Tenemos que mantener un vértice que es visible para cualquiervértice de división que pueda surgir entre ea y eb

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 63 / 105

Page 64: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Para ello, imagine una luz fluorescente que brilla desde cadapunto en ea (vértices blancos de la figura)

Tenga en cuenta que el punto extremo izquierdo ea es consideradoen este conjunto también

Decimos entonces que estos vértices son verticalmente visiblesabajo de ea

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 64 / 105

Page 65: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 65 / 105

Page 66: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Entre todos los vértices que son iluminados por estos rayos de luzverticales, sea u el más a la derecha.

Entonces u es visible para todo punto a lo largo de la línea debarrido entre ea y eb

Esto sugiere el siguiente concepto, el cual se define para cadaarista ea que intersecta la línea de barrido, de manera que elpolígono interior se encuentra localmente por debajo de ea

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 66 / 105

Page 67: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

auxiliar(ea): Sea eb la arista del polígono situada justo debajo de eaen la línea de barrido

El vértice auxiliar es el vértice más a la derecha verticalmentevisible bajo ea en la cadena poligonal entre ea y eb

Unimos cada vértice de división a el auxiliar(ea), donde ea es laarista de P inmediatamente encima del vértice de división

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 67 / 105

Page 68: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 68 / 105

Page 69: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Tengamos en cuenta que es posible que el auxiliar sea el puntoextremo izquierdo de ea

También es importante resaltar que el auxiliar(ea) se define conrespecto a la ubicación actual de la línea de barrido. A medida quela línea de barrido se mueve, su valor cambia

Además, está definido sólo para aquellas aristas intersectadas porla línea de barrido

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 69 / 105

Page 70: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

En cuanto a los vértices de combinación parece más difícildeshacerse de ellos, porque necesitan una diagonal a un vérticesituado más a la derecha que ellos

Debido a que la parte de P a la derecha de la línea de barrido nose ha explorado todavía, no podemos agregar una diagonal deesta forma cuando encontramos un vértice de combinación

Afortunadamente, este problema es más fácil de resolver de loque parece a primera vista

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 70 / 105

Page 71: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Supongamos que la línea de barrido llega a un vértice decombinación vi

Sean eb y ea las aristas inmediatamente abajo y arriba de la línea debarrido, respectivamente

Observe que vi se convierte en el nuevo auxiliar(ea) cuandolleguemos a él

Nos gustaría conectar vi al vértice más a la izquierda situado a laderecha de la línea de barrido entre eb y ea

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 71 / 105

Page 72: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

vi

ea

eb

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 72 / 105

Page 73: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Esto es exactamente lo contrario a lo que hicimos con los vérticesde división, los cuales se conectaron al vértice más a la derechasituado a la izquierda de la línea de barrido entre eb y ea

Esto no es sorprendente puesto que los vértices de combinaciónson vértices de división al revés

Por supuesto, no conocemos el vértice más a la izquierda situadoa la derecha de la línea de barrido cuando llegamos a vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 73 / 105

Page 74: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Pero es fácil encontrarlo más tarde: cuando se llega a un vértice vmque reemplaza vi como el auxiliar(ea), pues este es el vértice queestamos buscando

Por lo tanto, cada vez que sustituimos el auxiliar de alguna arista,se comprobará si el antiguo auxiliar es un vértice de combinación

Si es así, se añade la diagonal entre el antiguo y el nuevo auxiliar

Esta diagonal siempre se añade cuando el nuevo auxiliar es unvértice de división, con el fin de eliminarlo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 74 / 105

Page 75: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

vi

vm

ea

eb

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 75 / 105

Page 76: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Si el auxiliar anterior era un vértice de combinación, entonces nosdeshacemos de un vértice de división y uno de combinación conla misma diagonal

También puede ocurrir que el auxiliar de ea no sea sustituido mása la derecha de vi

En este caso podemos conectar vi al extremo derecho de ea

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 76 / 105

Page 77: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Para realizar las tareas que acabamos de describir tenemos queencontrar la arista arriba ea de cada vértice

Por lo tanto, debemos almacenar las aristas de P que intersectanla línea de barrido en las hojas de un árbol binario balanceado T

El orden de izquierda a derecha de las hojas de T corresponde alorden de arriba a abajo de las aristas

Debido a que sólo estamos interesados en las aristas arriba de losvértices de división y combinación, sólo necesitamos almacenaren T las aristas que tienen el interior de P abajo de ellas

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 77 / 105

Page 78: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Con cada arista en T almacenamos su auxiliar

El árbol T y los auxiliares almacenados con las aristas forman elestatus de la línea de barrido del algoritmo

El estatus cambia conforme la línea de barrido se mueve: lasaristas comienzan o dejan de intersectar la línea de barrido, y elauxiliar de una arista puede ser sustituido

El algoritmo particiona P en subpolígonos que deben serprocesados en una etapa posterior

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 78 / 105

Page 79: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Para tener un fácil acceso a estos subpolígonos debemosalmacenar la subdivisión inducida por P y las diagonalesagregadas en una lista de aristas doblemente conectada D

Suponemos que P está inicialmente especificado como una listade aristas doblemente conectada

Las diagonales calculadas para los vértices de división y decombinación se agregan a D

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 79 / 105

Page 80: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Para acceder a D usamos apuntadores entre las aristas en T y lasaristas correspondientes en D

De esta forma agregar una diagonal puede hacerse en tiempoconstante con una simple manipulación de apuntadores

El algoritmo global es el siguiente

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 80 / 105

Page 81: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

subdivisión MonótonaEntrada: Un polígono simple P almacenado en una lista de aristasdoblemente conectada DSalida: Una subdivisión de P en subpolígonos monótonos almacenadaen D

1 Construir una cola de prioridad Q de los vértices de P usando suscoordenadas x como prioridad. Si dos puntos tienen la mismacoordenada x entonces se usa el orden lexicográfico (x, y)

2 Inicializar un árbol binario balanceado T a vacío3 while Q 6= ∅ do

a Remueve el vértice vi con la más alta prioridad de Qb Llama al procedimiento adecuado para procesar vi dependiendo de

su tipo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 81 / 105

Page 82: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Procesamiento de eventosHay seis tipos de eventos basados en el análisis de la estructuralocal de las aristas al rededor de cada vértice

Sea vi el vértice actual encontrado por la línea de barrido

Vértice de inicio1 Insertar sus aristas incidentes ea y eb en el estatus de la línea de

barrido T2 auxiliar(ea)← vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 82 / 105

Page 83: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Vértice final1 Borrar las aristas incidentes a vi de T2 Sea e la arista directamente arriba de vi en T3 Si auxiliar(e) es un vértice de combinación entonces inserta una

diagonal entre vi y el auxiliar(e) en D

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 83 / 105

Page 84: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Vértice de división1 Sea e la arista directamente arriba de vi en T2 Insertar una diagonal entre vi y el auxiliar(e) en D3 Agregar las aristas ea y eb incidentes a vi en T4 auxiliar(eb)← vi

5 auxiliar(e)← vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 84 / 105

Page 85: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Vértice de combinación1 Borrar las aristas incidentes a vi de T2 Sea e la arista directamente arriba de vi en T3 Si auxiliar(e) es un vértice de combinación entonces inserta una

diagonal entre vi y el auxiliar(e) en D4 auxiliar(e)← vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 85 / 105

Page 86: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Vértice regular (interior del polígono arriba)1 Reemplazar la arista izquierda incidente a vi con la derecha en T2 Sea e la arista directamente arriba de vi en T3 Si auxiliar(e) es un vértice de combinación entonces inserta una

diagonal entre vi y el auxiliar(e) en D4 auxiliar(e)← vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 86 / 105

Page 87: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos División de un polígono en subpolígonos monótonos

División de un polígono en subpolígonos monótonos

Vértice regular (interior del polígono abajo)1 Reemplazar la arista izquierda ea incidente a vi con la derecha eb

en T2 Sea e la arista directamente arriba de vi en T3 Si auxiliar(e) es un vértice de combinación entonces inserta una

diagonal entre vi y el auxiliar(e) en D4 auxiliar(eb)← vi

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 87 / 105

Page 88: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

Triangulación de polígonos Ejemplo

1 Triangulación de polígonosProblema de triangulación de polígonosPolígonos monótonosTriangulación de polígonos monótonosDivisión de un polígono en subpolígonos monótonosEjemplo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Triangulación de polígonos 26 de febrero del 2013 88 / 105

Page 89: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

DPolígono P

Inicialización

Se almacenaP enDSe construyeQ con los vértices deP ordenados por coordenadas xSe inicializa el estatus de la línea de barrido T a vacío

Page 90: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

→ e4 v5e5

DPolígono P

Vértice de inicio

Insertar sus aristas incidentes ea y eb en el estatus de la línea de barrido Tauxiliar(ea)← vi

Page 91: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

→ e2 v3e3e4 v5e5

DPolígono P

Vértice de inicio

Insertar sus aristas incidentes ea y eb en el estatus de la línea de barrido Tauxiliar(ea)← vi

Page 92: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

→ e2 v3 v4e3e4 v5e5

DPolígono P

Vértice de combinación

Borrar las aristas incidentes a vi de TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enDauxiliar(e)← vi

Page 93: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

→ e2 v4 v6e5 e6

DPolígono P

v6v4

Vértice regular (interior del polígono arriba)

Reemplazar la arista izquierda incidente a vi con la derecha en TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enDauxiliar(e)← vi

Page 94: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

→ e15 v1e1e2 v6e6

DPolígono P

v6v4

Vértice de inicio

Insertar sus aristas incidentes ea y eb en el estatus de la línea de barrido Tauxiliar(ea)← vi

Page 95: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

e15 v1e1

→ e2 v6 v7e6 e7

DPolígono P

v6v4

Vértice regular (interior del polígono arriba)

Reemplazar la arista izquierda incidente a vi con la derecha en TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enDauxiliar(e)← vi

Page 96: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

e15 v1e1e2 v7e7

→ e8 v9e9

DPolígono P

v6v4

Vértice de inicio

Insertar sus aristas incidentes ea y eb en el estatus de la línea de barrido Tauxiliar(ea)← vi

Page 97: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6

v8

v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

Tei aux(ei)

→ e15 v1 v2e1e2 v7e7e8 v9e9

DPolígono P

v6v4

Vértice de combinación

Borrar las aristas incidentes a vi de TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enDauxiliar(e)← vi

Page 98: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14 v13

v10

v1

FinalInicio Division CombinacionRegularRegular

v8

Tei aux(ei)

→ e15 v2 v8e7e8 v9e9

DPolígono P

v6v4v8v2

Vértice de combinación

Borrar las aristas incidentes a vi de TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enDauxiliar(e)← vi

Page 99: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14

v13

v10

v1

FinalInicio Division CombinacionRegularRegular

v8

Tei aux(ei)

→ e15 v8 v14e14

→ e13 v14e9

DPolígono P

v6v4v8v2

v14v8

Vértice de división

Sea e la arista directamente arriba de vi en TInsertar una diagonal entre vi y el auxiliar(e) enDAgregar las aristas ea y eb incidentes a vi en Tauxiliar(eb)← viauxiliar(e)← vi

Page 100: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14

v13

v10

v1

FinalInicio Division CombinacionRegularRegular

v8

Tei aux(ei)

e15 v14e14e13 v14e9

DPolígono P

v6v4v8v2

v14v8

Vértice final

Borrar las aristas incidentes a vi de TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enD

Page 101: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14

v13

v10

v1

FinalInicio Division CombinacionRegularRegular

v8

Tei aux(ei)

→ e13 v14 v10e9 e10

DPolígono P

v6v4v8v2

v14v8

Vértice regular (interior del polígono arriba)

Reemplazar la arista izquierda incidente a vi con la derecha en TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enDauxiliar(e)← vi

Page 102: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14

v13

v10

v1

FinalInicio Division CombinacionRegularRegular

v8

Tei aux(ei)

→ e13 v10 v12e12

→ e11 v12e10

DPolígono P

v6v4v8v2

v14v8v12v10

Vértice de división

Sea e la arista directamente arriba de vi en TInsertar una diagonal entre vi y el auxiliar(e) enDAgregar las aristas ea y eb incidentes a vi en Tauxiliar(eb)← viauxiliar(e)← vi

Page 103: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14

v13

v10

v1

FinalInicio Division CombinacionRegularRegular

v8

Tei aux(ei)

e13 v12e12e11 v12e10

DPolígono P

v6v4v8v2

v14v8v12v10

Vértice final

Borrar las aristas incidentes a vi de TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enD

Page 104: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14

v13

v10

v1

FinalInicio Division CombinacionRegularRegular

v8

Tei aux(ei)

e13 v12e12

DPolígono P

v6v4v8v2

v14v8v12v10

Vértice final

Borrar las aristas incidentes a vi de TSea e la arista directamente arriba de vi en TSi auxiliar(e) es un vértice de combinación entonces inserta una diagonal entre vi y el auxiliar(e) enD

Page 105: Triangulación de polígonos - tamps.cinvestav.mxertello/gc/sesion11.pdf · Prueba Probaremos este teorema por inducción sobre n En el caso trivial cuando n = 3 el polígono en sí

v2v3

v4

v5

v7

v6v9

v11

v12

v14

v15e1e15

e2

e4

e3

e5e6

e7

e8

e9

e10

e11

e12e13

e14

v13

v10

v1

FinalInicio Division CombinacionRegularRegular

v8

Tei aux(ei)

DPolígono P

v6v4v8v2

v14v8v12v10

Finalización

Todos los vértices enQ han sido procesadosSe devuelve la subdivisión deP en subpolígonos monótonos almacenada enD como resultado