Computación Geométrica Intersección de segmentos

Documentos relacionados
Razonamiento Geométrico Tema 5: Triangulación de polígonos. Sesión 10: Descomposición en polígonos monótonos

Computación Geométrica Descomposición en polígonos monótonos

Computación Geométrica Tema 5: Triangulación de polígonos. Triangulación por descomposición. Descomposición en polígonos monótonos.

Triangulación de polígonos

Razonamiento Geométrico Tema 5: Triangulación de polígonos. Sesión 9: Algoritmos iniciales

Intersección de Segmentos de Recta. Geometría Computacional, MAT-125


Introducción Aplicaciones Primer Algoritmo Segundo Algoritmo - Algoritmo de Fortune. Diagrama de Voronoi. Jose Luis Bravo Trinidad 1 / 29

Instituto de Matemática y Física 1 Universidad de Talca

Intersección entre segmentos de recta. comp-420

Algoritmos sobre Listas

Plano Cartesiano y Vectores

VIDEOJUEGOS 2 Detección de colisiones

Ministerio de Educación. Diseño de Presentaciones en la Enseñanza. Módulo 4: Diapositivas de gráficos

ASIGNATURA: (TIS-106) Estructuras de Datos II DOCENTE: Ing. Freddy Melgar Algarañaz TEMA 4. Montículos binarios (heaps)

GUIA Nº3. FUNCIONES 2º MEDIO A) 30 B) 20 C) 10 D) 0 E) -10. A) sólo I B) sólo III C) I y II D) II y III E) I, II y III

Detección de Colisiones. Héctor Navarro

Relleno de Polígonos 1

1. El plano cartesiano

Computación Geométrica Operaciones geométricas básicas

GUIA DE EJERCICIOS TIPO PSU ECUACIONES Y FUNCIONES DE SEGUNDO GRADO MATEMÁTICA COMÚN

Sistema de coordenadas cartesianas. Ecuación de la recta y de la circunferencia.

DISEÑO DE PRESENTACIONES EN LA ENSEÑANZA. Diapositivas de diagrama

Nos proporciona información sobre el relieve, sobre otros aspectos del medio físico y de la ocupación humana.

Geometría Computacional. Dr. Antonio Marín Hernández

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Intersección de segmentos de línea

Tema 2.- Ordenación (Parte I)

Modelación de objetos 3D Parte I: Mallas de polígonos y triangulaciones

Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa

Listo para seguir? Intervención de destrezas

Lección 50. Funciones II. Plano cartesiano

Algebra lineal y conjuntos convexos

NOCIÓN DE PUNTO, RECTA Y PLANO

1. Cuál es el número total máximo de nodos que tiene un árbol binario de N niveles? a. N 2-1 b. 2 N+1-1 c. 2 N d. 2 N+1 i.

UNIDAD XVII LA LINEA RECTA. Modulo 4 Ecuación de la recta

Computación geométrica Convex hull

TEMA 5. RECTAS Y PLANOS. INCIDENCIA.

Definición: Se llama pendiente de una recta a la tangente de un ángulo de inclinación formado por el eje X y la

CAPÍTULO 5: SISTEMAS DE ECUACIONES

Ejemplo Traza la gráfica de los puntos: ( 5, 4), (3, 2), ( 2, 0), ( 1, 3), (0, 4) y (5, 1) en el plano cartesiano.

Francisco J. Hernández López

TEMA 6: GEOMETRÍA ANALÍTICA EN EL PLANO

MATEMÁTICAS III CUADERNILLO DE ACTIVIDADES Y TAREAS. Bachillerato General, Modalidad Mixta

TEMA V: SIMETRÍAS. 5.1.A Punto simétrico respecto a otro. Punto medio de un segmento

Materia: Matemática de 5to Tema: Ecuación vectorial. Marco Teórico

Guía de Funciones Cuadráticas

Variantes en Documentos de Venta WhitePaper Febrero de 2007

Introducción a la Geometría Computacional. Análisis de Algoritmos

Intersección de Segmentos de Recta (2) Geometría Computacional, MAT-125

Tema 14: ÁRBOLES Algoritmos y estructuras de datos I - Tema 14 1

Resumen de Transformaciones Isométricas. Traslaciones

Geometría Computacional. Envolvente convexa e intersección d

LECCIÓN Nº 04 LA PARABOLA

D7 Perpendicularidad

Francisco J. Hernández López

Computación Geométrica Tema 1: Introducción a la GC. Índice. Introducción a la Geometría Computacional. Definición. Intro Geometría Computacional

Algebra lineal y conjuntos convexos 1

CAPITULO II ORDENAMIENTO Y BUSQUEDA. Ivan Medrano Valencia

Geometría Computacional. Dr. Antonio Marín Hernández

para aterrizar finalmente en otro aeropuerto en el noroeste de los controladores aéreos. Los caminos de estos dos aviones se cruzan?

Métodos de ordenamiento:

M a t e m á t i c a s I I 1

La recta se define como el lugar geométrico de todos los puntos de un plano que al tomarse de dos en dos se obtiene la misma pendiente.

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Guia Calles SRL Guiacalles.com / / Manual rápido del Software GIS Libre QUANTUM GIS

Métodos de ordenamiento:

TEMA V. Espacios vectoriales

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Descomposicion en Polígonos Monótonos. comp-420

Simplificación y minimización por adyacencias

2. Con una lista ordenada, aunque la localización y eliminación es rápida el problema es en la inserción de datos pues puede ser del orden de O(n).

Estructura de Datos Árboles Árboles 2-3

Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas

Unidad 5: Geometría analítica del plano.

TAD CONJUNTOS Y MULTICONJUNTOS

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

INSTITUCIÓN EDUCATIVA TÉCNICA SAGRADO CORAZÓN Aprobada según Resolución No NIT DANE SOLEDAD ATLÁNTICO.

Algoritmos y Estructuras de Datos I Ejercicios. Tema 3. Árboles

Modelamiento Geométrico

Transiciones y Efectos

UN ESTUDIO PRELIMINAR SOBRE CONVEXIDAD

Colas deprioridad y heaps

Figura 1: Pendiente de una recta no vertical a partir de dos puntos cualesquiera sobre la recta.

Tema 3. Listas Recursión sobre datos

Prácticas de Introducción a los Computadores Curso Hoja Gráficos: Hoja Regresión: ESPESOR 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5 ESPESOR COSTES fij

UNIDAD 3 : ELEMENTOS GEOMÉTRICOS

Problemas: formulación, ejemplos, representación de soluciones y estructuras de entorno

PLANO CARTESIANO plano cartesiano origen eje eje ejes plano de coordenadas

La representación gráfica de una función cuadrática es una parábola.

3.6. Árboles B DEFINICIONES

Diagrama de Voronoi. Ejemplo de problemas geométricos:

Estructuras de datos: Árboles binarios de

Objetivos: Trasladar figuras en el plano cartesiano. Reconocer o identificar una traslación.

Diagrama de Voronoi. Ejemplo de problemas geométricos:

2. Desarrolla una especificación informal genérica para el TAD árbol binario. Incluir operaciones para crear y modificar el árbol.

Figura 1. Plano cartesiano.

UNIDAD: ÁLGEBRA Y FUNCIONES ECUACIÓN DE LA RECTA

Transcripción:

Computación Geométrica Intersección de segmentos 1

Índice Modelos geométricos básicos Un primer algoritmo Algoritmo avanzado 2

Aplicaciones GIS: Sistema de Información Geográfica Uso de capas para representar información ciudades, carreteras, rios, líneas de ferrocarril,.. regiones de precipitación, de vegetación,... Es interesante buscar intersecciones entre elementos y entre regiones 3

Algoritmo de fuerza bruta Fuerza bruta: Para cada par de segmentos (s1,s2) si Intersectan(s1,s2) anotar PuntoDeInterseccion(s1,s2) Alto coste debido a que se comprueban todas las posibles combinaciones: O(n^2) Mejora: hacer el coste del algoritmo dependiente de las posibles intersecciones 4

Posibles intersecciones Dos segmentos sólo son candidatos de intersectarse si se solapan sus proyecciones en el eje Y 5

Línea de barrido Una línea de barrido imaginaria, moviéndose de arriba abajo, permite ir detectando los segmentos cuyas proyecciones se solapan 6

Estado de la línea de barrido Consideramos que el estado de la línea de barrido está formado por los segmentos que ésta intersecta. El estado no cambia de forma continua, sólo lo hace en ciertos puntos discretos: puntos evento, que son los puntos inicio y final de segmento. 7

Estructuras de datos lista-evento: conjunto de puntos iniciales y finales de los segmentos, ordenados por coordenada y. Implementación: array, Vector, lista enlazada lista-estado: lista de segmentos que intersectan la línea de barrido Implementación: array, Vector, lista enlazada 8

Algoritmo de barrido (v. 0.5) 1. Insertar todos los puntos inicio y final en lista-evento de forma ordenada según su coordenada y 2. Mientras que lista-evento esté llena 3. p := QuitarMin(lista-evento) 4. Caso 1: p es un punto inicio del segmento s 5. Para cada segmento t de lista-estado 6. Si Intersectan(s,t) anotar Interseccion(s,t) 7. Añadir s a lista-estado 8. Caso 2: p es un punto final del segmento s 9. Eliminar s de la lista-estado 11

Ejemplo Hacemos una traza del algoritmo con el siguiente ejemplo de segmentos 10

Mejora: comprobar con vecinos Ordenamos de izquierda a derecha los segmentos que intersectan la línea de barrido según coordenada x de la intersección con la línea de barrido Sólo comprobaremos segmentos adjyacentes al nuevo segmento 12

Nuevos puntos evento Los puntos intersección son nuevos puntos evento: en ellos se cambia la ordenación de izquierda a derecha de los segmentos. lista-estado: (s0,s1) lista-estado: (s1,s0) 13

Estructuras de datos lista-evento: conjunto de puntos iniciales, finales, y puntos de intersección Implementación: array, Vector, lista enlazada lista-estado: lista de segmentos que intersectan la línea de barrido, ordenados según la coordenada x del punto de intersección del segmento con la línea de barrido Implementación: array, Vector, lista enlazada, árbol 14

Evento: Punto inicial Se añade segmento a listaestado Se comprueba con los segmentos adyacentes (sólo s3). Se detecta un punto de intersección que se inserta, de forma ordenada, en la lista-evento lista-estado: (s3,s2) lista-estado: (s1,s3,s2) 15

Evento: Punto de intersección Se intercambia en la listaestado el orden de los segmentos Al cambiar el orden entre s3 y s1, se debe comprobar intersección con sus nuevos vecinos: s3 con s0 y s1 con s2. Se detecta otra intersección entre s1 y s2. lista-estado: (s0,s1,s3,s2,s4) lista-estado: (s0,s3,s1,s2,s4) 16

Punto final Se elimina segmento de lista-estado. Al eliminar s1, aparecen dos nuevos segmentos vecinos que hay que comprobar: s0 y s4, generando la última intersección. lista-estado: (s0,s1,s4) lista-estado: (s0,s4) 17

Algoritmo de barrido (v. 0.9) 1. Insertar los puntos inicio y final en la lista-evento de forma ordenada según su coordenada y 2. Mientras que lista-evento esté llena 3. p := QuitarMin(lista-evento) 4. TratarPuntoEvento(p,lista-estado) 5. Si se encuentran nuevas intersecciones 6. Añadir los puntos de intersección en la listaevento 18

TratarPuntoEvento(p,l-estado) Caso 1 p es un punto inicio del segmento s Insertar s de forma ordenada en lista-estado Comprobar si intersecta con los segmentos adyacentes Caso 2 p es un punto final del segmento s Eliminar s de la lista-estado Comprobar si intersectan los nuevos segmentos adyacentes Caso 3 p es un punto de intersección de los segmentos s1 y s2 Intercambiar el orden de s1 y s2 en lista-estado Comprobar si intersectan con los nuevos adyacentes 19

Casos degenerados La versión vista del algoritmo no funciona bien con los siguientes casos degenerados: Más de un segmento intersectan en el mismo punto Más de un segmento comienza en el mismo punto Para considerar estos casos, consultar la versión del algoritmo propuesta en el de Berg 20