arreglos y dualidad - cinvestavertello/gc/sesion17.pdf · lo que requerimos es que la diferencia...

96
Arreglos y Dualidad Giomara Lárraga, Sotero Martínez CINVESTAV-Tamaulipas 19 de marzo del 2013 Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 1 / 96

Upload: others

Post on 10-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos y Dualidad

Giomara Lárraga, Sotero Martínez

CINVESTAV-Tamaulipas

19 de marzo del 2013

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 1 / 96

Page 2: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

1 ArreglosRay TracingDefinición de la discrepanciaCálculo de la discrepancia

2 DualidadDefiniciónInterpretación geométricaAplicaciones

3 Arreglos de líneasArreglos de líneasAlgoritmo de construcción incrementalComplejidad

4 Niveles y DiscrepanciaNiveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 2 / 96

Page 3: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos

El material de la clase de hoy está basado en el capítulo 8 delsiguiente 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.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 3 / 96

Page 4: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Ray Tracing

1 ArreglosRay TracingDefinición de la discrepanciaCálculo de la discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 4 / 96

Page 5: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Ray Tracing

Ray Tracing

Hoy en día, es difícil distinguir entre imágenes generadas porcomputadora y fotografías.

Una técnica que ha ayudado a este desarrollo es el ray tracing.

El ray tracing genera una imagen de un espacio tridimensionalusando una malla bidimensional para simular la pantalla de lacomputadora, y disparando un rayo ortogonal de la malla hacia laescena por cada pixel de la pantalla.

Cada pixel muestra entonces el primer objeto que toca el rayo.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 5 / 96

Page 6: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Ray Tracing

Ray Tracing

Sin embargo, un pixel no es necesariamente un punto, sino unapequeña área cuadrada.

La mayoría de los pixeles tocan un objeto por completo, sinembargo, surge un problema cuando se procesan los bordes de unobjeto.

Para resolver este problema, se lanzan varios rayos por pixel y secalcula cuántos tocaron el objeto.

Esto es llamado supersampling.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 6 / 96

Page 7: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Ray Tracing

Ray Tracing

Una muestra de 100 rayos por pixel nos daría directamente elporcentaje de cobertura del pixel.

Intuitivamente, se podría pensar en un arreglo equitativo de 10por 10, sin embargo, esto atrae ciertos problemas.

Al distribuir equitativamente, se creará cierta regularidad entrelas filas y columnas de los pixeles.

Esto activa el sistema visual humano y vemos ciertos artefactosmolestos, por lo que un arreglo equitativo puede no ser la mejoridea.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 7 / 96

Page 8: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Ray Tracing

Ray Tracing

Entonces requerimos una arreglo aleatorio.

Definiendo un arreglo de prueba aleatorio, requerimos saber si esun arreglo adecuado.

Lo que requerimos es que la diferencia entre el porcentaje deaciertos para un objeto y el porcentaje de área del pixel donde elobjeto es visible sea pequeña.

A esta diferencia se le conoce como discrepancia del arreglo deprueba con respecto al objeto.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 8 / 96

Page 9: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Ray Tracing

Ray Tracing

Como no sabemos por adelantado qué objetos serán visibles,debemos prepararnos para el peor escenario.

Queremos que la discrepancia máxima de entre todas las posiblesformas en que se puede ver un objeto en el pixel sea pequeña.

Esto es llamado discrepancia del arreglo de prueba, y dependedel tipo de objetos presentes en la escena.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 9 / 96

Page 10: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Ray Tracing

Ray Tracing

Formalmente, basados en la discrepancia del arreglo con respectoa ciertos objetos, decidimos si es adecuado.

Si la discrepancia es suficientemente baja, mantenemos el arreglo

De otra forma, generamos un nuevo arreglo aleatorio.

Requerimos entonces un algoritmo que determine la discrepanciade un arreglo de puntos dados.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 10 / 96

Page 11: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Definición de la discrepancia

1 ArreglosRay TracingDefinición de la discrepanciaCálculo de la discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 11 / 96

Page 12: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Definición de la discrepancia

Definición de la discrepancia

Los objetos que debemos considerar son las proyecciones de losobjetos tridimensionales que se encuentran en nuestra escena

Dichos objetos son las facetas de los poliedros, y estamosinteresados en la discrepancia con respecto a la clase de polígonos

Si un pixel es interceptado por el borde de un polígono, elpolígono dentro se comporta como un semiplano.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 12 / 96

Page 13: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Definición de la discrepancia

Definición de la discrepancia

Sea U un pixel, y S un conjunto de n puntos en U.

H denota el conjunto (infinito) de todos los posibles semiplanoscerrados.

La medición continua de un semiplano h ∈ H es el área de h⋂

Uy se denota por µ(h).

Si un semiplano h que cubra completamente U, tenemos queµ(h) = 1.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 13 / 96

Page 14: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Definición de la discrepancia

Definición de la discrepancia

La medición discreta de h, denotada como µs(h), son los puntoscontenidos en h.

Formalmente, definimos µs(h) := card(S⋂

h)card(S) donde card() denota la

cardinalidad de un conjunto.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 14 / 96

Page 15: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Definición de la discrepancia

Definición de la discrepancia

La discrepancia de h con respecto a S, denotada como ∆S(h), es ladiferencia absoluta entre las mediciones continuas y discretas:

∆S(h) :=| µ(h)− µS(h) |

Finalmente, la discrepancia del semiplano de S es la máximadiscrepancia de entre todos los posibles semiplanos:

∆H(S) := sup∆S(h); h ∈ H

Ya teniendo en claro lo que requerimos, podemos determinar elcómo conseguirlo.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 15 / 96

Page 16: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Cálculo de la discrepancia

1 ArreglosRay TracingDefinición de la discrepanciaCálculo de la discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 16 / 96

Page 17: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Cálculo de la discrepancia

Cálculo de la discrepancia

Es siempre una buena idea reemplazar un conjunto infinito poruno finito.

Éste último debe contener los elementos que nos interesan.

Para determinar los elementos interesantes, tomaremos elsemiplano con máxima discrepancia local.

Uno de estos semiplanos tendrá el máximo real.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 17 / 96

Page 18: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Cálculo de la discrepancia

Cálculo de la discrepancia

Cualquier semiplano que no contenga un punto de S en su límitepuede ser alterado de manera que se incremente su discrepancia,por lo que buscamos entonces un semiplano con un punto de S ensu límite.

Consideremos un semiplano h con solo un punto p ∈ S en sulímite.

Si rotamos h alrededor de p podemos alcanzar un extremo en lafunción de medición continua.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 18 / 96

Page 19: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Cálculo de la discrepancia

Cálculo de la discrepancia

Si este extremo es un máximo local, cualquier leve rotaciónreducirá la medición continua.

Si la medición discreta es menor que la medición continua en estemáximo, una rotación reduciría la discrepancia, y viceversa parael mínimo local.

Por lo tanto, la discrepancia máxima podría ser encontrada endicho extremo.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 19 / 96

Page 20: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Cálculo de la discrepancia

Cálculo de la discrepancia

Sea p un punto en S.

Sea `p(φ) para 0 ≤ φ < 2π una línea que cruza p y hace un ánguloφ con el eje x positivo.

Denotamos el semiplano encima de `p(φ) como hp(φ).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 20 / 96

Page 21: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Cálculo de la discrepancia

Cálculo de la discrepancia

Un extremo puede ocurrir cuando φ se incrementa de 0 a 2π, locual puede pasar como máximo 8 veces.Cuando `p(φ) intersecta el límite superior y el izquierdo de U, porejemplo, tenemos:

µ(hp(φ)) =12

(1− py + px tanφ)(px +1− py

tanφ)

En este caso tenemos dos extremos locales.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 21 / 96

Page 22: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Cálculo de la discrepancia

Cálculo de la discrepancia

LemaSea S un conjunto de n puntos en una unidad cuadrada U. Unsemiplano h que llega a la discrepancia máxima con respecto a Spertenece a uno de los siguientes tipos:

1 - h contiene un punto p ∈ S en su límite.2 - h contiene dos o más puntos de S en su límite.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 22 / 96

Page 23: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos Cálculo de la discrepancia

Cálculo de la discrepancia

El número de candidatos de tipo 1 es O(n) y pueden ser halladosen tiempo O(n).

Para cada uno de los O(n) semiplanos, debemos calcular sumedición continua en tiempo constante, y su medición discreta entiempo O(n).

Por lo tanto, el máximo de las discrepancias puede ser calculadoen tiempo O(n2).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 23 / 96

Page 24: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad

1 ArreglosRay TracingDefinición de la discrepanciaCálculo de la discrepancia

2 DualidadDefiniciónInterpretación geométricaAplicaciones

3 Arreglos de líneasArreglos de líneasAlgoritmo de construcción incrementalComplejidad

4 Niveles y DiscrepanciaNiveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 24 / 96

Page 25: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Definición

2 DualidadDefiniciónInterpretación geométricaAplicaciones

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 25 / 96

Page 26: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Definición

Definición

Un punto en un plano tiene 2 parámetros principales: unacoordenada x y otra coordenada y.

Una línea no vertical tiene también dos parámetros: la pendiente yla intersección con el eje Y.

Por lo tanto, podemos representar un conjunto de puntos como unconjunto de líneas, y viceversa.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 26 / 96

Page 27: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Definición

Definición

Diferentes representaciones son posibles, y son llamadastransformaciones de dualidad.

La imagen de un objeto bajo una transformación de dualidad esllamada el dual del objeto.

Decimos que la transformación de dualidad representa objetos delplano primario al plano dual.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 27 / 96

Page 28: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Definición

Definición

Sea p := (px, py) un punto en el plano, el dual de p, denotado p∗ sedefine cómo:

p∗ := (y = pxx− py)

El dual de una línea ` : y = mx + b es el punto p tal que p∗ = `, esdecir:

`∗ := (m,−b).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 28 / 96

Page 29: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Definición

Definición

ObservaciónLa transformación de dualidad o 7→ o∗ tiene las siguientespropiedades:

Preserva la incidencia: p ∈ ` si y sólo si `∗ ∈ p∗.Preserva el orden: p se encuentra sobre ` si y sólo si `∗ está sobrep∗.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 29 / 96

Page 30: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Definición

Definición

Sea p := (px, py) un punto en el plano, el dual de p, denotado p∗ sedefine cómo:

p∗ := (y = pxx− py)

El dual de una línea ` : y = mx + b es el punto p tal que p∗ = `, esdecir:

`∗ := (m,−b).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 30 / 96

Page 31: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Interpretación geométrica

2 DualidadDefiniciónInterpretación geométricaAplicaciones

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 31 / 96

Page 32: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Interpretación geométrica

Interpretación geométrica

Es posible aplicar la dualidad a otros objetos, como un segmentode línea.

Si tenemos s := p̄q, es lógico tomar la unión de los duales de todoslos puntos en s como s∗.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 32 / 96

Page 33: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Interpretación geométrica

Interpretación geométrica

Como todos los puntos de s son colineales, las líneas dualespasarán por un solo punto.

Su unión forma un semiplano triangular (cuña) doble, que esacotado por los duales de los puntos finales de s.

Los duales de dichos puntos finales forman en total dos cuñasdobles: de izquierda a derecha, y de arriba a abajo.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 33 / 96

Page 34: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Interpretación geométrica

Interpretación geométrica

La transformación dual recién expresada tiene una buenainterpretación geométrica.

Sea U : y = x2/2, y p un punto en U.

La derivada de U en p es px, asi que p∗ tiene la misma pendienteque la linea tangente de U en p, por lo que la tangente es de hechoalgún punto p ∈ U.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 34 / 96

Page 35: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Interpretación geométrica

Interpretación geométrica

Dos puntos en la misma línea vertical tienen duales con la mismapendiente.

Si tomamos otro punto q que no esté en U, q∗ es paralelo a p∗ si ptiene la misma coordenada x que q.

Un tercer punto qi con la misma coordenada X que q tal queqi

y − py = py − qy

Por lo tanto, q∗ es la línea que cruza qi y es paralela a la tangentede U en p.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 35 / 96

Page 36: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Interpretación geométrica

Interpretación geométrica

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 36 / 96

Page 37: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Aplicaciones

2 DualidadDefiniciónInterpretación geométricaAplicaciones

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 37 / 96

Page 38: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Aplicaciones

Aplicaciones

La dualidad provee un punto de vista diferente para un mismoproblema.

Esto es porque si hallamos la solución a un problema en el planodual, podemos imitar la solución en el plano inicial y obtener elresultado.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 38 / 96

Page 39: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Aplicaciones

Aplicaciones

Podemos tomar el ejemplo de la sección anterior y considerar elproblema de la discrepancia en el plano dual.

Cuando dualizamos el conjunto de puntos S, obtenemos unconjunto S∗ := p∗ : p ∈ S de líneas.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 39 / 96

Page 40: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Aplicaciones

Aplicaciones

Sea `(p, q) la línea que cruza dos puntos p, q ∈ S.

El dual de esta línea es el punto de intersección de las dos líneasp∗, q∗ ∈ S∗

La medición discreta del semiplano debajo de `(p, q) nos da elnúmero de puntos estrictamente debajo de `(p, q)

Esto significa que estamos interesados en el número de líneasestrictamente arriba de `(p, q)∗, así como las líneas sobre `(p, q)∗.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 40 / 96

Page 41: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Dualidad Aplicaciones

Aplicaciones

Con esta información, podemos utilizar un algoritmo paracalcular el número de líneas sobre, debajo, y a través de cadapunto de intersección.

Cuando aplicamos este algoritmo al conjunto S∗, obtenemos todala información requerida para calcular las mediciones discretas detodos los semiplanos acotados por líneas entre dos puntos en S.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 41 / 96

Page 42: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas

1 ArreglosRay TracingDefinición de la discrepanciaCálculo de la discrepancia

2 DualidadDefiniciónInterpretación geométricaAplicaciones

3 Arreglos de líneasArreglos de líneasAlgoritmo de construcción incrementalComplejidad

4 Niveles y DiscrepanciaNiveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 42 / 96

Page 43: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Arreglos de líneas

3 Arreglos de líneasArreglos de líneasAlgoritmo de construcción incrementalComplejidad

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 43 / 96

Page 44: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Arreglos de líneas

Arreglos de líneas

Sea L un conjunto de rectas en el plano. Este conjunto genera unasubdivisión del plano consistente en vértices, aristas y caras.Algunas de estas aristas y caras no están acotadas. Estasubdivisión se denota como el arreglo inducido por L y se denotaA(L).

Un arreglo se denomina simple cuando no existen tres rectas quepasen por el mismo vértice y no existen líneas paralelas.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 44 / 96

Page 45: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Arreglos de líneas

Arreglos de líneas

La complejidad (combinatoria) de un arreglo es el número total devértices, aristas y caras del arreglo.

La construcción completa de un arreglo consume gran cantidadde tiempo y almacenamiento, debido a que la complejidad delarreglo es alta.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 45 / 96

Page 46: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Arreglos de líneas

Arreglos de líneas

TeoremaEl número de vértices de A(L)es al menos n(n–1)/2El número de aristas de A(L)es al menos n2

El número de caras de A(L)es al menos n2/2 + n/2 + 1

Estas tres igualdades se mantienen si y sólo si A(L) es simple.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 46 / 96

Page 47: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Arreglos de líneas

Arreglos de líneas

Con una estructura DCEL se puede almacenar de una formaeficiente la lista de las aristas de una cara dada, y de esta forma, apartir de ella podremos alcanzar cualquier otra parte del arreglo.

Una estructura DCEL, sin embargo, solamente puede almacenarcaras acotadas, y un arreglo posee también un número de aristas ycaras que no están acotadas.

Por ello se define un bounding box que va a delimitar la parte quenos interesa de un arreglo. Éste deberá contener todos los vérticesdel arreglo en su interior.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 47 / 96

Page 48: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Arreglos de líneas

Arreglos de líneas

Bounding box

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 48 / 96

Page 49: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Arreglos de líneas

Arreglos de líneas

La forma más sencilla de construir un arreglo de rectas esrealizando un barrido del plano.

Como el número de puntos de intersección de un arreglo de rectases cuadrático, exactamente n(n-1)/2, el algoritmo podríaejecutarse en un tiempo O(n2logn)

No está nada mal, pero no es óptimo. Por tanto, lo que serecomienda es utilizar un algoritmo de construcción incremental.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 49 / 96

Page 50: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

3 Arreglos de líneasArreglos de líneasAlgoritmo de construcción incrementalComplejidad

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 50 / 96

Page 51: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

El algoritmo incremental añade las rectas {l1, l2, ..., ln} unadespués de otra y actualiza la estructura DCEL después de cadainserción.

Sea Ai la subdivisión del plano inducida por el bounding box B(L)y la parte de A({l1, ..., li}) que está dentro de B(L).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 51 / 96

Page 52: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Para añadir la recta li, es necesario dividir las caras de Ai−1 queson intersectadas por li de izquierda a derecha.

Suponemos que la nueva recta entra en el arreglo de rectas poruna cara f a través de la arista e.

Caminamos por la frontera de f siguiendo los punteros Next() enla estructura DCEL hasta que encontremos el half-edge de laarista e’ donde li abandona la cara f.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 52 / 96

Page 53: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Se pasa entonces a la siguiente cara utilizando el puntero Twin()deeste half-edge para alcanzar el otro half-edge de e’ en la estructuraDCEL.

Puede ocurrir también que se abandone la región f atravesandoun vértice v. En este caso es necesario caminar alrededor de v,visitando todos los bordes que inciden en dicho vértice hastaencontrar la siguiente región intersectada por li.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 53 / 96

Page 54: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 54 / 96

Page 55: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 55 / 96

Page 56: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 56 / 96

Page 57: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 57 / 96

Page 58: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 58 / 96

Page 59: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 59 / 96

Page 60: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 60 / 96

Page 61: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 61 / 96

Page 62: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 62 / 96

Page 63: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 63 / 96

Page 64: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 64 / 96

Page 65: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 65 / 96

Page 66: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 66 / 96

Page 67: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 67 / 96

Page 68: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Queda por ver cómo encontrar la arista situada más a la izquierdaque intersecta con la recta li, que es la arista por la que secomienza a recorrer el arreglo Ai−1, y, por último, cómo dividir lascaras que se van encontrando.

El punto de intersección entre li y Ai−1, situado más a la izquierdaestá en una arista de B(L).Sólo hay que buscar entre todas lasaristas cuál es la primera en ser intersectada.

La cara adyacente a esta arista está dentro de B(L) y es la primeracara que divide la recta li.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 68 / 96

Page 69: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Si li hace intersección con Ai−1, por primera vez, en una esquinade B(L), la primera cara que divide li es la única cara adyacente aesa esquina que está dentro de B(L).

Si li es una recta vertical, puede localizarse, para comenzar elrecorrido, el punto de intersección más bajo entre li y Ai−1.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 69 / 96

Page 70: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Como Ai−1 contiene al menos 2i+ 2 aristas en B(L), el tiempo quese necesita para este paso es lineal para cada recta, teniendo encuenta que todas las aristas pertenecientes a B(L) pueden estarconectadas por sus punteros Next(), ya que al fin y al cabo todasellas tienen como una de sus caras incidentes la cara que quedafuera del límite de B(L).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 70 / 96

Page 71: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Se quiere dividir una cara f,y se asume que la cara situada a laizquierda de f en el recorrido de li ya ha sido dividida y, enparticular, que la arista e por donde se entra a f se encuentra yadividida.

Para dividir f, en primer lugar hay que crear dos nuevos registrosde caras, uno para la parte de f que se encuentra por encima de li yotro para la parte de f que se encuentra debajo de li.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 71 / 96

Page 72: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

A continuación hay que dividir la arista e’ que es aquella por laque li abandona f; además hay que crear un nuevo vértice parali ∩ e′. Es decir, se crea un nuevo registro de vértice y dos nuevosregistros de half-edge para las dos nuevas aristas.

Hay que crear, además, registros de half-edge para la arista li ∩ f .

Es importante inicializar correctamente todos los punteros de losregistros de las nuevas caras, vértices y half-edge y destruir elregistro de la cara f y los registros de los half-edge de e’. El tiempototal de esta división es lineal respecto a la complejidad de f.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 72 / 96

Page 73: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 73 / 96

Page 74: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Algoritmo CONSTRUIRARREGLO(L)Entrada. Un conjunto L de n rectas en el plano.Salida. La estructura DCEL con la subdivisión del plano generada porB(L) y la parte de A(L) que se encuentra dentro de B(L), siendo B(L) unbounding box que contiene todos los vértices de A(L) en su interior.

1 Calcular el bounding box B(L) que contiene todos los vértices deA(L) en su interior.

2 Construir la estructura DCEL para la subdivisión generada porB(L).

3 for i← 1 to n4 do Encontrar la arista e en B(L) que contiene el punto de

intersección situado más a la izquierda entre li y Ai.5 f ← la cara finita adyacente a e6 while f no sea una cara infinita, es decir, una cara fuera de B(L)7 do Dividir f, y dejar f ser la siguiente cara intersectada.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 74 / 96

Page 75: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

El paso 1 del algoritmo que calcula B(L) puede realizarse en untiempo O(n2), ya que es necesario calcular todas las interseccionesentre las rectas para obtener las que se encuentra más arriba, másabajo, más a la izquierda y más a la derecha, que serán los vérticesque formen el bounding box.

El paso 2 consume un tiempo constante. Encontrar la primeraregión dividida por li lleva un tiempo O(n).

Faltaría por delimitar el tiempo consumido por la división de lascaras intersectadas por li.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 75 / 96

Page 76: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Para calcular este tiempo se asume que A(L) es un arreglo derectas simple.

En este caso, el tiempo utilizado para dividir una cara f yencontrar la siguiente cara con intersección, es lineal respecto a lacomplejidad de f. Por lo tanto, el tiempo total necesario parainsertar una recta li es lineal respecto a la suma de lascomplejidades de las caras de Ai−1 intersectadas por li.

Cuando un arreglo A(L) no es simple, puede abandonarse unacara f a través de un vértice, en cuyo caso es necesario recorrertodas las caras adyacentes a dicho vértice hasta encontrar lasiguiente cara a dividir; para ello hay que recorrer las aristas queno están en la frontera de la cara a dividir.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 76 / 96

Page 77: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Nótese que las aristas que se tratan en este caso, están en lafrontera de las caras que intersectan con li.

Esto nos lleva al concepto de zona.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 77 / 96

Page 78: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

La zona de una línea en el arreglo A(L) inducido por el conjunto Lde líneas en el plano, es el conjunto de caras de A(L) a las cualesintersecta.

La complejidad de una zona está definida por la suma de elnúmero de aristas y vértices de esas caras.

En la figura se puede notar que algunos vértices son contados unavez en la complejidad de la zona, otros dos, tres o incluso 4 veces.

El tiempo que necesitamos para insertar li es lineal en lacomplejidad de la zona de li en A({l1, ..., li}). El teorema de la zonanos dice que esta cantidad es lineal.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 78 / 96

Page 79: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 79 / 96

Page 80: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Algoritmo de construcción incremental

Algoritmo de construcción incremental

TeoremaLa complejidad de la zona de una línea en un arreglo de m líneasen el plano es O(m).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 80 / 96

Page 81: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Complejidad

3 Arreglos de líneasArreglos de líneasAlgoritmo de construcción incrementalComplejidad

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 81 / 96

Page 82: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Complejidad

Complejidad

Hemos visto que el tiempo necesario para insertar li es lineal en lacomplejidad de la zona de li en A({l1, ..., li−1}).

Por el teorema de la zona esto es O(i). así que el tiempo requeridopara insertar todas las líneas es:

n∑i=1

O(i) = O(n2) (1)

Los pasos 1 y 2 del algoritmo juntos toman O(n2), así que eltiempo total de ejecución del algoritmo es O(n2). Debido a que lacomplejidad de A(L) es Θ(n2) cuando A(L) es simple, nuestroalgoritmo es óptimo.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 82 / 96

Page 83: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Arreglos de líneas Complejidad

Complejidad

TeoremaUna lista de aristas doblemente conectada para el arreglo inducidopor un conjunto de n líneas puede ser construido en O(n2).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 83 / 96

Page 84: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia

1 ArreglosRay TracingDefinición de la discrepanciaCálculo de la discrepancia

2 DualidadDefiniciónInterpretación geométricaAplicaciones

3 Arreglos de líneasArreglos de líneasAlgoritmo de construcción incrementalComplejidad

4 Niveles y DiscrepanciaNiveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 84 / 96

Page 85: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

4 Niveles y DiscrepanciaNiveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 85 / 96

Page 86: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Hemos dualizado el conjunto S de n puntos simples en unconjunto S* de n líneas, y necesitamos calcular para cada vérticede A(S*):

Cantidad de líneas que pasan sobre el vérticeCantidad de líneas que pasan a través del vérticeCantidad de líneas que pasan bajo el vértice

Para cada vértice, estas tres cantidades suman exactamente n, asíque es suficiente calcular dos de éstas.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 86 / 96

Page 87: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Hemos construido una lista de aristas doblemente conectada paraA(S*), por lo tanto sabemos cuantas líneas pasan a través de cadavértice.

Definimos nivel de un punto en un arreglo de líneas como elnúmero de líneas estrictamente sobre él.

Para calcular los niveles de los vértices de A(S*) hacemos losiguiente para cada línea ∈ S*.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 87 / 96

Page 88: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Primero calculamos el nivel del vértice más a la izquierda en untiempo O(n), revisando por cada línea restante que caeestrictamente sobre este vértice.

Después caminamos de izquierda a derecha para visitar elsiguiente vértice, usando la lista de aristas doblemente conectada.

Es fácil mantener el nivel mientras caminamos: el nivel solocambia en un vértice, y el cambio puede ser calculadoinspeccionando las aristas incidentes al vértice encontrado.

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 88 / 96

Page 89: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 89 / 96

Page 90: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 90 / 96

Page 91: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 91 / 96

Page 92: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 92 / 96

Page 93: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 93 / 96

Page 94: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 94 / 96

Page 95: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 95 / 96

Page 96: Arreglos y Dualidad - CINVESTAVertello/gc/sesion17.pdf · Lo que requerimos es que la diferencia entre el porcentaje de aciertos para un objeto y el porcentaje de área del pixel

Niveles y Discrepancia Niveles y Discrepancia

Niveles y Discrepancia

De esta forma, el tiempo para calcular los niveles de los vérticesen l es O(n). Por lo tanto, los niveles de todos los vértices de A(S*)pueden ser calculados en tiempo O(n2).

El número de líneas sobre, a través y bajo cada vértice de A(S*)nos da la información que necesitamos para calcular la medidadiscreta de los semiplanos acotados por las líneas que contienendos puntos en S.

Por lo tanto, estas medidas discretas pueden ser calculadas entiempo O(n2).

Giomara L., Sotero M. (CINVESTAV) Arreglos y Dualidad 19 de marzo del 2013 96 / 96