Intersección de objetos geométricos
Teorema 2.1: Toda línea poligonal cerrada C divide el plano en dos regiones, una acotada y la otra no. Además, se puede determinar si un punto p está en la región acotada contando el número de veces que cualquier semirrecta que comienza en p atraviesa a C; p estará en dicha región si y sólo si dicho número es impar.
Teorema 2.1: Toda línea poligonal cerrada C divide el plano en dos regiones, una acotada y la otra no. Además, se puede determinar si un punto p está en la región acotada contando el número de veces que cualquier semirrecta que comienza en p atraviesa a C; p estará en dicha región si y sólo si dicho número es impar.
Teorema: La intersección de n semiplanos puede calcularse en tiempo O(n log n) Lema: El núcleo de un polígono puede calcularse en tiempo O(n log n)
¿Cómo calcular la región de Voronoi de un punto? Los puntos del plano pertenecientes a h(pi,pj) son aquellos que están más próximos a pi que a pj. Lema: La intersección de los semiplanos h(p1,pj) es Vor(p1). Corolario: Vor(p1) es un convexo.
Intersección de: Segmentos Semiplanos Convexos
Intersección de: Segmentos Semiplanos Convexos
Es posible resolver la intersección de segmentos (decir cuales son los segmentos que se cortan y donde) en tiempo cuadrático... A veces es necesario el tiempo cuadrático:
Es posible resolver la intersección de segmentos (decir cuales son los segmentos que se cortan y donde) en tiempo cuadrático... A veces es necesario el tiempo cuadrático: Pero en muchos ejemplos cada segmento corta a pocos de los otros:
La línea de barrido va determinando los segmentos que intersecta de izquierda a derecha. Nos tenemos que parar en todos los puntos en los que se modifique dicha lista: Los extremos de los segmentos. Los puntos de intersección. 1 2 3 4 2 1 3 4 2 1 5 2 5 1 Sólo se puede producir una intersección entre dos segmentos si estos segmentos son consecutivos en algún momento en el barrido inmediatamente anterior a que se produzca la intersección 5
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos 1 2 3 4 5
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos i1 i2 1 2 i4 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos Inicialmente P={i1,i2,i4,i3,f3,f4,i5,f1,f5,f2} i1 i2 1 2 i4 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos Inicialmente P={i1,i2,i4,i3,f3,f4,i5,f1,f5,f2} S= i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i1,i2,i4,i3,f3,f4,i5,f1,f5,f2} S= i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i1,i2,i4,i3,f3,f4,i5,f1,f5,f2} S= i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i1,i2,i4,i3,f3,f4,i5,f1,f5,f2} S={1} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i2,i4,i3,f3,f4,i5,f1,f5,f2} S={1} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i2,i4,i3,f3,f4,i5,f1,f5,f2} S={1} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i2,i4,i3,f3,f4,i5,f1,f5,f2} S={1,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i2,i4,i3,f3,f4,i5,f1,f5,f2} S={1,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i2,i4,i3,f3,f4,i5,f1,f5,f2} S={1,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i2,i4,i3,j12,f3,f4,i5,f1,f5,f2} S={1,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i4,i3,j12,f3,f4,i5,f1,f5,f2} S={1,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i4,i3,j12,f3,f4,i5,f1,f5,f2} S={1,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i4,i3,j12,f3,f4,i5,f1,f5,f2} S={1,4,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i4,i3,j12,f3,f4,i5,f1,f5,f2} S={1,4,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i4,i3,j12,f3,f4,i5,f1,f5,f2} S={1,4,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i4,i3,j12,f3,f4,i5,f1,f5,f2} S={1,4,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i4,j24,i3,j12,f3,f4,i5,f1,f5,f2} S={1,4,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i4,j24,i3,j12,f3,f4,i5,f1,f5,f2} S={1,4,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j24,i3,j12,f3,f4,i5,f1,f5,f2} S={1,4,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j24,i3,j12,f3,f4,i5,f1,f5,f2} S={1,4,2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j24,i3,j12,f3,f4,i5,f1,f5,f2} S={1,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i3,j12,f3,f4,i5,f1,f5,f2} S={1,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i3,j12,f3,f4,i5,f1,f5,f2} S={3,1,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i3,j12,f3,f4,i5,f1,f5,f2} S={3,1,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i3,j13,j12,f3,f4,i5,f1,f5,f2} S={3,1,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j13,j12,f3,f4,i5,f1,f5,f2} S={3,1,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j13,j12,f3,f4,i5,f1,f5,f2} S={1,3,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j13,j12,f3,f4,i5,f1,f5,f2} S={1,3,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j13,j23,j12,f3,f4,i5,f1,f5,f2} S={1,3,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j23,j12,f3,f4,i5,f1,f5,f2} S={1,3,2,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j23,j12,f3,f4,i5,f1,f5,f2} S={1,2,3,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j12,f3,f4,i5,f1,f5,f2} S={1,2,3,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j12,f3,f4,i5,f1,f5,f2} S={2,1,3,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f3,f4,i5,f1,f5,f2} S={2,1,3,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f3,f4,i5,f1,f5,f2} S={2,1,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f4,i5,f1,f5,f2} S={2,1,4} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f4,i5,f1,f5,f2} S={2,1} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i5,f1,f5,f2} S={2,1} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i5,f1,f5,f2} S={2,1,5} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i5,f1,f5,f2} S={2,1,5} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={i5,j15,f1,f5,f2} S={2,1,5} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j15,f1,f5,f2} S={2,1,5} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={j15,f1,f5,f2} S={2,5,1} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f1,f5,f2} S={2,5,1} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f1,f5,f2} S={2,5} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f5,f2} S={2,5} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f5,f2} S={2} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f5,f2} S={2} Intersecciones={j24,j13,j23,j12,j15} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f5,f2} S={2} Intersecciones={j24,j13,j23,j12,j15} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 O(log |S|) j15 f1 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos P={f5,f2} S={2} Intersecciones={j24,j13,j23,j12,j15} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 O(log |S|) j15 f1 O(log |P|) 5 f5 f2
Mantendremos dos listas ordenadas: P=puntos de parada (extremos de segmentos y puntos de intersección) S=orden en el que nos encontramos los segmentos Teorema 6.1: Es posible calcular las I intersecciones de n segmentos en tiempo O(n log n +I log n). P={f5,f2} S={2} Intersecciones={j24,j13,j23,j12,j15} i1 i2 En cada momento me voy al primer elemento e de la lista P y actualizo ambas listas siguiendo las instrucciones: 1-Si e es un punto inicial: añado el segmento correspondiente a la lista S. 2-Si e es un punto final: elimino el segmento correspondiente de la lista S. 3-Si e es un punto de intersección: intercambio los segmentos correspondientes en la lista S 4-Se comprueba si los nuevos segmentos consecutivos en S tienen intersección. En caso de tenerla actualizo P. 5- elimino e de P i4 1 2 j24 i3 j13 j23 3 4 j12 f3 f4 i5 O(log |S|) j15 f1 O(log |P|) 5 f5 f2
Intersección de: Segmentos Semiplanos Convexos
Divide y vencerás Dado H una colección de semiplanos: 1.- Dividimos H en dos subconjuntos H1 y H2 del mismo tamaño. 2.- Calculamos recursivamente H1 e H2. 3.- A partir de 2 calculamos H= (H1) (H2)
Divide y vencerás Dado H una colección de semiplanos: 1.- Dividimos H en dos subconjuntos H1 y H2 del mismo tamaño. 2.- Calculamos recursivamente H1 e H2. 3.- A partir de 2 calculamos H= (H1) (H2) convexos
Divide y vencerás Dado H una colección de semiplanos: 1.- Dividimos H en dos subconjuntos H1 y H2 del mismo tamaño. 2.- Calculamos recursivamente H1 e H2. 3.- A partir de 2 calculamos H= (H1) (H2) convexos
Intersección de: Segmentos Semiplanos Convexos
C2 C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 S={C2,C1,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 S={C1,C2,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos S={C1,C1,C2,C2} S={C1,C2,C1,C2} C2 C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos S={C1,C1,C2,C2} S={C1,C2,C1,C2} C2 C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos S={C1,C1,C2,C2} S={C1,C2,C1,C2} C2 C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos S={C1,C2,C1,C2} S={C1,C2,C1,C2} C2 C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos S={C1,C2,C1,C2} C2 S={C2,C1,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos S={C1,C2,C1,C2} C2 S={C2,C1,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos S={C1,C2,C1,C2} C2 S={C2,C1,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 S={C2,C1,C1,C2} S={C1,C2,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 S={C2,C1,C1,C2} S={C1,C2,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 S={C1,C2,C1,C2} S={C1,C2,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 S={C1,C2,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 S={C1,C2,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 S={C1,C2,C1,C2} C1
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 C1 S={C1,C2,C1,C2}
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 C1 S={C1,C2,C1,C2}
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 C1 S={C1,C2,C1,C2} S={C2,C1,C1,C2}
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 C1 S={C1,C2,C1,C2} S={C2,C1,C1,C2}
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 C1 S={C2,C1,C1,C2}
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos C2 C1 S={C2,C1,C1,C2} S={C1,C1,C2,C2}
Mantendremos dos listas ordenadas: P=puntos de parada (vértices de los polígonos) S=lista de cuatro elementos con el orden en el que nos encontramos los polígonos Divide y vencerás Dado H una colección de semiplanos: 1.- Dividimos H en dos subconjuntos H1 y H2 del mismo tamaño. 2.- Calculamos recursivamente H1 e H2. 3.- A partir de 2 calculamos H= (H1) (H2) Teorema 6.2: Es posible calcular la intersección de dos regiones convexas limitadas por n segmentos o semirectas en tiempo lineal. C2 Corolario 6.1: Es posible calcular la intersección de n semiplanos en tiempo O(n log n). C1 S={C2,C1,C1,C2} S={C1,C1,C2,C2}