Está en la página 1de 17

TRIANGULACIN DE DELAUNAY

4.1. INTRODUCCIN.
La superficie terrestre se puede modelar con una superficie polidrica de tipo terreno. Un terreno es una superficie de dos dimensiones en un espacio tridimensional, con la particularidad de que cada lnea vertical la intersecta en un punto. Es decir, es una funcin f que asigna una altura f(p) a cada punto p del dominio A del terreno. Pongamos como ejemplo una parcela de tierra real, nosotros no conocemos la altura de cada uno de los puntos, slo conocemos la altura de los puntos que hemos medido previamente, es decir, conocemos la altura de un conjunto finito P contenido en A de puntos. A partir de estos puntos podemos calcular aproximadamente la altura de otros puntos del dominio. Se podra pensar en una primera aproximacin en asignar a cada punto p una altura igual a la del punto ms cercano, esto dara una imagen de terreno discreto que no se ajusta a la realidad. Es aqu, donde podemos introducir el concepto de triangulacin. Una triangulacin de una nube de puntos del plano es una familia maximal de tringulos de interiores disjuntos cuyos vrtices son puntos de la nube y en cuyo interior no hay ningn punto de la nube. Volvamos de nuevo a las superficies de tipo terreno: supongamos que los puntos de la nube son los puntos donde hemos medido la altura, despus de realizar la triangulacin, elevamos dichos puntos a su altura real, la triangulacin resultante en 3-D es una superficie polidrica de tipo terreno, que puede ser utilizada como una aproximacin ms perfecta al terreno real. En el siguiente grfico se puede observar una superficie de tipo terreno, en la que se puede observar las implicaciones anteriores.

Surgen ahora nuevas cuestiones: cmo triangulamos ese conjunto de puntos? Existen muchas formas de triangular conjuntos de puntos, pero, cul es la triangulacin que ms se aproxima a un terreno?. Al no tener informacin sobre otros puntos, en principio, cualquier triangulacin podra ser igual de vlida, aunque a simple vista unas parecen ms naturales que otras. Parece ms lgica la triangulacin que forme los "tringulos ms regulares" , que aparentemente nos dar una imagen ms fiel del terreno real. De esta forma llegaremos a la Triangulacin de Delaunay (o ms correctamente, Triangulacin de Delone)

4.2. TRIANGULACIN DE UNA NUBE DE PUNTOS


Sea P = {p1, p2,...,pn} un conjunto de puntos en el plano. Definiremos una subdivisin maximal en el plano como una subdivisin S, tal que ningn lado conectado a dos vrtices pueda ser aadido a S sin perder su estado plano, es decir, ningn lado de S intersecta con otro lado existente. As, una triangulacin se define como una subdivisin maximal planar cuyo conjunto de vrtices es P. Es sencillo demostrar que esta subdivisin est formada por tringulos.

En los grficos anteriores se puede observar dos de las muchas posibilidades para triangular una nube de puntos, la primera de ellas es una triangulacin "normal" y la segunda, la ya comentada triangulacin de Delaunay. No se van a tratar los mtodos para triangular una nube de puntos, existindo para ello numerosa bibliografa, pasaremos directamente a hablar de esa clase especial de triangulacin, la triangulacin de Delaunay.

4.3. TRIANGULACIN DE DELAUNAY.


La idea de la Triangulacin de Delaunay consiste en: dada una nube de puntos en el plano, hallar una triangulacin en la que los puntos ms prximos entre s estn conectados por una arista, o dicho de otra forma, en la que los tringulos resultantes sean lo ms regulares posibles. 4.3.1. Caracterizacin de la Triangulacin de Delaunay. Sea P = {p1, p2,...,pn} un conjunto de puntos en el plano, una Triangulacin de Delaunay de P cumplir las siguientes propiedades: Tres puntos pi, pj y pk pertenecientes a P son vrtices de la misma cara de la Triangulacin de Delaunay de P, si y solamente si, el crculo que pasa por los puntos pi, pj y pk no contiene puntos de P en su interior. Podemos observarlo en el siguiente grfico:

Dos puntos pi y pj pertenecientes a P forman un lado de la Triangulacin de Delaunay de P, si y solamente si, existe un crculo que contiene a pi y pj en su circunferencia y no contiene en su interior ningn punto de P. De igual manera podemos observarlo en el grfico siguiente:

Con estas dos propiedades podemos caracterizar la Triangulacin de Delaunay de la siguiente manera: Sea P un conjunto de puntos en el plano y T una triangulacin de P. T es una Triangulacin de Delaunay de P, si y solamente si, la circunferencia circunscrita de cualquier tringulo de T no contiene puntos de P. Veamos grficamente lo que denominaremos como arista ilegal:

Se puede observar, que en la figura de la izquierda, la circunferencia circunscrita al tringulo sombreado contiene a otro punto en su interior, la arista que pertenece a los dos tringulos (lnea ms gruesa) es una arista ilegal. Realizando un intercambio de aristas o flip se consigue una triangulacin vlida, tal y como se observa en el dibujo de la derecha. Hemos convertido una arista ilegal en legal. Se puede generalizar y afirmar que una triangulacin T de un conjunto P de puntos en el plano es una Triangulacin de Delaunay, si y solamente si, todas las aristas son legales. 4.3.2. Un Primer Algoritmo. Con las afirmaciones anteriores podramos pensar en un primer algoritmo para el clculo de la Triangulacin de Delaunay de un conjunto de puntos en el plano: TRIANGULACION_DELAUNAY (P)
Entrada: Un conjunto P de puntos en el plano. Salida: La Triangulacin de Delaunay de P. 1. Obtener una triangulacin T cualquiera de P. 2. mientras existan arista ilegales en T hacer el flip correspondiente de la arista. 4. Fin

Como hemos comentado no vamos a partir de una triangulacin dada, sino que vamos a construir la Triangulacin de Delaunay de manera incremental a medida que van insertndose nuevos puntos.

4.3.3. Otro Algoritmo. Realmente no es un nuevo algoritmo, es una modificacin del anterior para adaptarlo al mecanismo incremental. Partimos de un tringulo p-1 p-2 p-3, suficientemente grande, que contenga toda la nube de puntos. La idea es computar la Triangulacin de Delaunay de la nube de puntos sin que el tringulo externo p-1 p-2 p-3 afecte a la misma. Finalmente descartaremos las aristas que partan de p-1, p-2 p-3

Veamos el algoritmo: TRIANGULACION_DELAUNAY (P)


Entrada: Un conjunto P de puntos en el plano. Salida: La Triangulacin de Delaunay de P. 1. Sean p-1, p-2 y p-3 tres puntos tales que P est contenido en el tringulo que forman. 2. Inicializamos T como una triangulacin de un nico tringulo p-1 p-2 p-3 3. Realizar una permutacin cualquiera p1, p2,..., pn de P 4. for r:=1 to n 5. hacer (* Insertar pr en T *) 6. Encontrar un tringulo pi pj pk de T que contenga a pr 7. si pr cae en el interior del tringulo pi pj pk 8. entonces Aadir aristas desde pr a los tres vrtices de pi pj pk, dividiendo este tringulo en tres 9. LEGALIZA_LADO (pr, pi pj,T) 10. LEGALIZA_LADO (pr, pj pk,T) 11. LEGALIZA_LADO (pr, pk pi,T) 12. en caso contrario (* pr cae encima de uno de los lados del tringulo pi pj pk, por ejemplo el lado pi pj *) 13. Aadir aristas desde pr a pk y al tercer vrtice pl del otro

tringulo que comparte la arista pi pj, de esta forma dividimos los dos tringulos que comparten la arista pi pj en cuatro tringulos. 14. LEGALIZA_LADO (pr, pi pl,T) 15. LEGALIZA_LADO (pr, pl pj,T) 16. LEGALIZA_LADO (pr, pj pk,T) 17. LEGALIZA_LADO (pr, pk pi,T) 18. Descartar p-1, p-2 y p-3 y todas las aristas que parten de ellos de T 19. devuelve T

Veamos el algoritmo algo ms en detalle: En el punto 6. se nos pide que encontremos el tringulo que contiene a ese punto, ste es un tpico problema de localizacin de punto tratado en numerosa bibliografa. En el punto 7. (el punto est en el interior del tringulo) nos encontramos en la situacin que se presenta en el siguiente grfico:

Vemos como conectamos el vrtice insertado con los vrtices del tringulo, partiendo de esta forma el tringulo original en tres. En el punto 12. en cambio, el punto cae justamente en medio de una arista compartida por dos tringulos, en este caso dividimos los dos tringulos iniciales en cuatro, tal y como muestra el grfico siguiente:

En ambos casos hemos generado nuevos tringulos y no tenemos la garanta de que las aristas externas sean aristas legales, por eso, desde el punto 9. al 11. y desde el 14. al 17. del algoritmo se realiza la legalizacin de los lados ms externos, realizando flips, si es necesario (procedimiento LEGALIZA_LADO). Veamos ahora el procedimiento LEGALIZA_LADO: LEGALIZA_LADO (pr, pi pj, T) 1. (* El punto que se est insertando es pr, y pi pj es la arista de T a la que puede ser necesario hacer un flip *) 2. si pi pj es ilegal 3. entonces Sea pi pj pk el tringulo adyacente a pr pi pj compartiendo la arista pi pj 4. (* Flip pi pj *) Reemplazar pi pj por pr pk 5. LEGALIZA_LADO (pr,pi pk, T) 6. LEGALIZA_LADO (pr,pk pj, T) Es decir comprueba que la legalidad de la arista, si es ilegal hace el flip correspondiente y chequea de nuevo la legalidad de los nuevos lados. Anteriormente ya comentamos cuando un lado es ilegal, pero por la construccin del algoritmo, existen tres puntos (los del tringulo externo) que insertamos al comienzo y no deben afectar a la triangulacin de la nube de puntos, por esto hay que realizar una modificacin al test de comprobacin de la legalidad de la arista cuando uno de los puntos del tringulo externo est implicado. Veamos esta modificacin.

Partimos de la nube inicial de puntos P = {p1, p2,...,pn} a la que le aadimos los puntos que forman el triangulo externo que contiene a P, es decir, p-1, p-2 y p-3. Queremos comprobar si la aristapi pj es o no ilegal. Surgen varias posibilidades: i y j son negativos. En este caso decidimos que la arista pi pj es legal, ya que tenemos que preservar las aristas del tringulo externo p-1 p-2 p-3. Para el resto de los casos asumimos que pk y pl son los otros dos vrtices de los tringulos que comparten la arista pi pj. i, j, k, l son todos positivos. Este es el caso normal comentado anteriormente, la arista pi pj es ilegal, si y solamente si, pl cae dentro del crculo definido por pi pj y pk Solamente uno de los ndices i, j, k, l es negativo. No queremos que este punto especial destruya alguna arista de Delaunay entre puntos de P. Para ello, si i o j son negativos (pi o pj son puntos del tringulo externo), decidimos que la arista pi pjes ilegal y ser reemplazada por la arista pk pl, en caso contrario la arista pi pj es legal. Dos de los ndices i, j, k, l son negativos. En este caso uno de los ndices i, j y otro de los ndices k,l deben ser negativos; no podemos tener k y l negativos y si i y j lo fueran estaramos en el primer caso. Si el indice negativo de i, j es menor que el indice negativo de k, l entonces decidimos que la arista pi pj es legal, en caso contrario, ilegal. Tres de los ndices i, j, k, l son negativos. Este caso nunca puede ocurrir: si i y j son negativos estaramos en el primer caso, adems k y l no pueden ser ambos negativos ya que uno de los dos debe ser el punto pr que acabamos de insertar. Como hemos visto, este algoritmo, no es directamente incremental, ya que se parte de un conjunto de puntos inicial. Todas las afirmaciones anteriores son vlidas en el caso de que los puntos sean insertados, por ejemplo, por pulsaciones del ratn, a excepcin de la eleccin del tringulo externo que deberemos de prefijarla al comienzo de la ejecucin.

Existe una variacin sobre el algoritmo que no utiliza el tringulo externo que contiene a toda la nube de puntos. Se basa en el siguiente planteamiento: Si el punto que insertamos est dentro de un tringulo de Delaunay (o en una arista),es decir, est dentro del cierre convexo de la nube de puntos, operamos de igual forma que el algoritmo descrito. Pero si est fuera de la nube, trazaramos aristas desde el punto a todos los vrtices del cierre convexo visibles desde l, aplicando posteriormente el algoritmo LEGALIZA_LADO a las aristas internas de los nuevos tringulos generados, que propagarn al legalizacin de los lados hacia el interior. Quiz un grfico ilustre mejor la idea:

Hemos insertado el punto p en el exterior, creamos aristas desde p a los puntos del cierre convexo que son visibles desde p es decir a c1, c2 y c3 , generando tres nuevos tringulos, que en principio, no tienen porqu ser vlidos, deberemos chequear la legalidad de los lados 1, 2 y 3 y realizar los flips si son necesarios, y por supuesto propagar la legalizacin segn lo indicado en el algoritmo LEGALIZA_LADO. Como se habr podido observar existen muchas relaciones entre los Diagramas de Voronoi y la Triangulacin de Delaunay, hasta tal punto que son estructuras duales, como veremos en el siguiente punto.

4.4. VORONOI vs DELAUNAY.


Nada mejor que un ejemplo grfico para ver las relaciones entre el Diagrama de Voronoi y la Triangulacin de Delaunay. En la ilustracin siguiente podemos observar el Diagrama de Voronoi de una nube de puntos y, superpuesto, la Triangulacin de Delaunay:

Podemos observar: Cada vrtice de Delaunay tiene una regin de Voronoi dual. Cada arista de Delaunay tiene una arista de Voronoi dual (perpendiculares). Cada tringulo de Delaunay tiene un vrtice de Voronoi dual, que coincide con el circuncentro del tringulo. Con estas observaciones, los dos problemas a resolver son el mismo, obteniendo uno de los dos diagramas, el dual tambin est resuelto.

http://www.dma.fi.upm.es/mabellanas/voronoi/delone/delone.html

Triangulacin de Delaunay
Una triangulacin de Delaunay /dlo'ne/, a veces escrito fonticamente Delon, es una red de tringulos que cumple la condicin de Delaunay. Esta condicin dice que la circunferencia circunscrita de cada tringulo de la red no debe contener ningn vrtice de otro tringulo. Se usan triangulaciones de Delaunay en geometra por ordenador, especialmente en grficos 3D por computadora. Se le denomina as por el matemtico ruso Boris Nikolaevich Delone ( , 1890 - 1980) quien lo invent en 1934;1 el mismo Delone us la forma francesa de su apellido, Delaunay, como apreciacin a sus antecesores franceses.

[editar]Aplicacin
En grficos 3D por computadora se usan redes de polgonos para modelar objetos tridimensionales, juntando los polgonos para imitar la superficie del objeto. En general se usan tringulos porque son los polgonos ms simples y tienen muchas propiedades favorables, como que representan una superficie coplanar. Hay dos formas de modelar un objeto de superficies: modelarlo de mano o escanearlo con un range scanner. Al escanearlo se produce un relieve de la superficie formado por puntos discretos (ver Fig. 1). Para usar ese relieve hay que transformarlo en una red de tringulos (ver Fig. 2); esa transformacin se llama triangulacin. La triangulacin de Delaunay maximiza los ngulos interiores de los tringulos de la triangulacin. Eso es muy prctico porque al usar la triangulacin como modelo tridimensional los errores de redondeo son mnimos. Por eso, en general se usan triangulaciones de Delaunay en aplicaciones grficas.

Fig. 1. De algunos puntos se quiere construir una triangulacin.

Fig. 2. Es fcil construir cualquiera triangulacin simplemente conectando los vrtices.

Fig. 3. Con la condicin de Delaunay se puede examinar si la triangulacin es til.

[editar]Condicin

de Delaunay

Fig. 4. Los tres vrtices A, B, C del tringulo ABC estn a la misma distancia del circuncentro O.

La circunferencia circunscrita de un tringulo es la circunferencia que contiene los tres vrtices del tringulo. Segn la definicin de Delaunay la circunferencia circunscrita es vaca, si no contiene otros vrtices aparte de los tres que la definen. La condicin de Delaunay dice que una red de tringulos es una triangulacin de Delaunay si todas las circunferencias circunscritas de todos los tringulos de la red son vacas. Esa es la definicin original para espacios bidimensionales. Es posible ampliarla para espacios tridimensionales usando la esfera

circunscrita en vez de la circunferencia circunscrita. Tambin es posible ampliarla para espacios con ms dimensiones pero no se usa en la prctica. Esa condicin asegura que los ngulos del interior de los tringulos son lo ms grandes posible. Es decir, maximiza la extensin del ngulo ms pequeo de la red.

[editar]Propiedades
Triangulaciones de Delaunay tienen las propiedades siguientes:

La triangulacin forma la envolvente convexa del conjunto de puntos. El ngulo mnimo dentro de todos los tringulos est maximizado. La triangulacin es unvoca si en ningn borde de circunferencia circunscrita hay ms que tres vrtices.

[editar]Relacin

con diagramas de Voronoi

La triangulacin de Delaunay con todos los circuncentros es el grafo dual del diagrama de Voronoi: los circuncentros son los vrtices de los segmentos del diagrama:

Fig. 5. La triangulacin con todas las circunferencias circunscritas y sus centros (en rojo).

Fig. 6. Conectando los centros de las circunferencias circunscritas se produce el diagrama de Voronoi (en rojo).

[editar]Flipping

De la geometra de los tringulos se puede deducir una caracterstica importante: Contemplando dos tringulos ABD y BCD con la arista comn BD (ver Fig. 7), si la suma de los ngulos y es menor o igual a 180, los tringulos cumplen la condicin de Delaunay. Eso es importante porque de esta propiedad se puede deducir el flipping (del ingls flip invertir). Si los dos tringulos no cumplen la condicin de Delaunay, reemplazando la arista comn BD por la arista comn AC produce una triangulacin de Delaunay:

Fig. 7. Esta triangulacin no cumple la condicin de Delaunay.

Fig. 8. Esta triangulacin no cumple la condicin de Delaunay.

Fig. 9. Flipping de la arista comn produce una triangulacin que cumple la condicin de Delaunay.

[editar]Construccin

del algoritmo

Hay varios algoritmos que sirven para crear una triangulacin de Delaunay a partir de un conjunto de puntos. En todos estos algoritmos hay que inspeccionar si un vrtice est dentro de una circunferencia circunscrita o no, as que este test tiene que ser muy eficiente. Por supuesto es posible computar el

circuncentro y la circunferencia circunscrita y despus examinar si el vrtice est dentro del crculo, pero hay un test ms simple y eficiente que usa el determinante de una matriz. En dos dimensiones. Si los tres puntos A, B y C forman un tringulo con los puntos denominados en sentido contrario al de las agujas del reloj, el punto D est dentro de su circunferencia circunscrita si:

Es decir, si el determinante de este matriz es mayor que 0. En este caso es suficiente conocer el signo aritmtico, as que este cmputo puede ser acelerado fcilmente.2

[editar]Incremental

construction

El algoritmo Incremental construction (ingls para construccin incremental) realiza la idea: aadir un vrtice a una triangulacin de Delaunay y corregir la red hasta que todos los tringulos cumplan de nuevo la condicin de Delaunay. Hay varias posibilidades para seleccionar el vrtice siguiente, incidentalmente, ordenado por una coordenada o usando un rbol. La seleccin del vrtice siguiente tiene una gran influencia en el tiempo de ejecucin del algoritmo.

[editar]Divide

and conquer

Este algoritmo usa el principio conocido como divide and conquer (ingls para divide y vencers): dividir el conjunto de puntos en dos partes de igual tamao, calcular la triangulacin de Delaunay para cada parte individualmente y despus reunir las dos triangulaciones corrigiendo los errores. La idea de usar el principio divide and conquer para computar un diagrama de Voronoi en dos dimensiones fue introducida en 1975.3 La idea fue revisada en 1980 para computar la triangulacin de Delaunay4 y mejorada por Guibas y Stolfi in 1985.5 En 1986 Dwyer present una modificacin que mejor la cota ajustada asinttica6 y en 1992 Leach present otra aceleracin del mtodo.7En 1997 Cigoni, Montani y Scopigno presentaron el algoritmo DeWall, que hace posible el clculo de una triangulacin de Delaunay usando divide and conquer para cualquier nmero de dimensiones.8 Usando el algoritmo ms avanzado, ese mtodo resulta en una cota superior asinttica de O(n log n)7 y una cota ajustada asinttica de O(n log (log n)); en algunos casos especiales es posible reducir la cota ajustada a la cota superior.

[editar]Sweepline

El algoritmo sweepline (ingls para recorrer la lnea) se basa en un principio similar a la construccin incremental: construir una pequea parte de la triangulacin final y despus seguir aadiendo vrtices hasta que la triangulacin est completa. La diferencia estriba en que no hay que corregir ningn de los errores que pudieran presentarse

http://es.wikipedia.org/wiki/Triangulacin_de_Delaunay

También podría gustarte