geometría computacional: objetos y problemas básicos

33
Geometría Computacional: Objetos y problemas básicos. Maikel Arcia Miguel Sancho

Upload: miguel-sancho

Post on 03-Jul-2015

242 views

Category:

Education


2 download

DESCRIPTION

Introducción a los objetos geométricos básicos, como determinar un giro a la derecha o a la izquierda en un orden circular. Problema de determinar un punto dentro de un polígono.

TRANSCRIPT

Page 1: Geometría Computacional: Objetos y problemas básicos

Geometría Computacional: Objetos y problemas básicos.

Maikel Arcia

Miguel Sancho

Page 2: Geometría Computacional: Objetos y problemas básicos

Temas a tratar

Objetos básicos.

Representación de objetos.

Sentido de giro de un triángulo.

Intersección de 2 Segmentos

Punto dentro de un Polígono

Ejercicios propuestos.

Page 3: Geometría Computacional: Objetos y problemas básicos

Objetos básicos.

Los objetos geométricos básicos en el plano son:

puntos, líneas, segmentos, polígonos, círculos.

Se pueden definir objetos geométricos en el espacio n-dimensional.

Existen variadas formas de representar los objetos espaciales.

Page 4: Geometría Computacional: Objetos y problemas básicos

Representación de puntos.

Un punto p se puede representar por un

par (x, y) que representa las coordenadas cartesianas.

Alternativa: representar un punto como la intersección de dos líneas.

6:40PM

Page 5: Geometría Computacional: Objetos y problemas básicos

Representación de líneas.

Una línea l puede ser representada como un trío (a, b, c), tal que:

ax + by + c=0

Alternativa: l puede especificarse como dos puntos p1 y p2 (p1 ≠ p2). Donde p1 =(x1, y1) de y p2=(x2, y2 ) . La ecuación de l quedaría :

(x- x1)/(x2 - x1) = (y- y1)/(y2 - y1)

Se puede derivar: a= (y2 - y1); b= -(x2 - x1); c= y1(x2 - x1)-x1(y2 - y1)

6:40PM

Page 6: Geometría Computacional: Objetos y problemas básicos

Representación de Segmentos.

Un segmento s es típicamente representado por el par de puntos extremos:

(p, q).

Alternativa: representar por una línea y el rango de coordenadas x y y que restringen la línea en el segmento s.

(¿Por qué es insuficiente incluir solamente el rango de coordenadas x y y ?).

6:40PM

Page 7: Geometría Computacional: Objetos y problemas básicos

Representación de polígonos

Un polígono se puede definir como una secuencia de puntos en orden circular, que se denominan vértices de P.

El orden circular puede ser en sentido horario o en sentido antihorario.

Los segmentos entre vértices consecutivos de Pse denoniman aristas de P.

Page 8: Geometría Computacional: Objetos y problemas básicos

Propiedades de los polígonos

Un polígono se denomina simple si las aristas del polígono sólo se interceptan en los puntos extremos de las aristas.

Un polígono es convexo si es simple y todos los ángulos interiores son menores que π.

Page 9: Geometría Computacional: Objetos y problemas básicos

Ejemplos de polígonos

Caso General Simple Convexo

Page 10: Geometría Computacional: Objetos y problemas básicos

Sentido de giro de un triángulo (1)

Podemos calcular el área (con signo) del triángulo a partir del producto vectorial de los vectores (p1, p2) y (p1, p3)

p1

p2

p3

Page 11: Geometría Computacional: Objetos y problemas básicos

La función “signo de área” ∆(p1, p2, p3):

Su valor absoluto es el doble área del triángulo formado por los puntos p1, p2, p3.

Esta función nos proporciona la solución al problema de la orientación.

Sentido de giro de un triángulo (4)

Page 12: Geometría Computacional: Objetos y problemas básicos

Sentido de giro de un triángulo (2)

Determinante:

Signo del determinante:

>0 cuando p1,p2 y p3 giro antihorario o la izquierda

<0 cuando p1,p2 y p3 giro horario o la derecha

=0 cuando p1,p2 y p3 son colineales

Page 13: Geometría Computacional: Objetos y problemas básicos

Sentido de giro de un triángulo (3)

Ejemplo:

p1 = (1,1); p2 = (1,3); p3 = (3,1)

Page 14: Geometría Computacional: Objetos y problemas básicos

Intersección de dos segmentos

Proposición: sea s1= p1q1 y s2 = p2q2 dos segmentos en el plano, s1 y s2 se interceptan ssi los puntos cumplen con una de las siguientes condiciones:

1. (a) (p1, q1, p2) y (p1, q1, q2) diferente orientación y (b) (p2, q2, p1) y (p2, q2, q1) diferente orientación.

2. (a) (p1, q1, p2), (p1, q1, q2) y (p2, q2, q1) son colineales y (b) las proyecciones de las x-coordenadas se interceptan y (c) las proyecciones de las y-coordenadas.

Page 15: Geometría Computacional: Objetos y problemas básicos

Análisis de la condición 1q1

p1

s2

s1

p2

q2

a)

q1

p1

s2

s1

p2

q2

b)

q1

p1

s2

s1

p2

q2

c)

q1

p1

s2

s1

p2

q2

d)

• SH: Sentido Horario

•SAH: Sentido Antihorario

•COL: Colineales

Page 16: Geometría Computacional: Objetos y problemas básicos

q1

p1

s2

s1

p2

q2

Análisis de la condición 2

q1

p1

s2

s1

p2

q2

a) b)

Page 17: Geometría Computacional: Objetos y problemas básicos

Intersección de N- segmentos

Este problema será abordado en profundidad en la próxima

discusión en la conferencia.

Page 18: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un triángulo

¿Cómo saber si un punto p arbitrario está en el

interior de un Triángulo?

p4

p1

p2

p3

Page 19: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono

Page 20: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono

Page 21: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono

Page 22: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono (2)

Trazar un rayo horizontal desde el punto hacia el infinito (positivo).

Si el rayo intercepta la primera arista de P estaremos afuera de P, luego de la segunda intersección estaremos dentro de P, en la tercera de nuevo afuera, así sucesivamente.

Si el número de intersecciones es impar, esto significa que qes un punto interior de P, en otro caso q es exterior a P.

Page 23: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono (1)- Problema en posición general.

Page 24: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono (1)- Problema en posición general.

Page 25: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono (1)- Problema en posición general.

Page 26: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono (1)

Page 27: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono (1)

p

Page 28: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono (1)

p

Page 29: Geometría Computacional: Objetos y problemas básicos

Punto dentro de un Polígono (1)

p

Page 30: Geometría Computacional: Objetos y problemas básicos

Geometría Computacional: Objetos y problemas básicos.

Algoritmo Punto Interior Polígono (q,P):

Entrada: Un punto q y un polígono P

Salida: indica si q es interior o exterior a P.

Buscar la máxima x-coordenada xM de los vértices de

P.

Sea s el segmento de extremos q y el pto(xM,y(q))

i = 0

Para cada segmento e de P hacer

Si el segmento s y e interceptan entonces

i = i + 1

Si i es impar entonces

Retornar “adentro”

Sino

Retornar “afuera”

Page 31: Geometría Computacional: Objetos y problemas básicos

Casos degenerados ¡Ejercicio!

Desarrollo un algoritmo de decisión con complejidad temporal O(n), que determine si un punto q es interior a un polígono P con n vértices, considerando que puede haber vértices con igual y-coordenada

Page 32: Geometría Computacional: Objetos y problemas básicos

1. Sea S una colección de segmentos. Desarrolle un algoritmo que determine si los segmentos de S forman un polígono. Se permite que el polígono tenga intersecciones entre las aristas, no se permiten que dos vértices del polígono sean coincidentes.

2. Diseñar una estructura de datos para polígonos convexos que cuente con la operación de inclusión de un punto.

3. Dado un conjunto P de n puntos, diseñar un algoritmo eficiente que permita construir un polígono simple cuyos vértices son los puntos de P.

Ejercicios

Page 33: Geometría Computacional: Objetos y problemas básicos

4. Diseñe un algoritmo de tiempo O(n) que determine si un punto p es interior a un polígono P convexo. Valore usar la estrategia “Divide y Vencerás”. - se efectuó en clase.

5. Diseñe un algoritmo de tiempo O(n2) para saber si un polígono P es simple. Asuma que el polígono esta dado como una secuencia de vértices

Ejercicios