Geométria computacional: Polígonos y-monótonos

88
Geometría Computacional: Triangulación: Polígonos Y-Monótonos

description

La triangulación de Polígonos y-monótonos es un caso particular de la triangulación de polígonos de mucha importancia, como paso intermedio para la triangulación de un polígono arbitrario.

Transcript of Geométria computacional: Polígonos y-monótonos

Page 1: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional: Triangulación: Polígonos Y-Monótonos

Page 2: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Eje y

Cadena

izquierda

End Vertex

Start Vertex

Cualquier línea perpendicular a el eje Y intersecta al polígono solo dos veces.

Las cadenas nunca van hacia arriba cuando pasan por los vértices regulares empezando por el inicio y terminando en el fin.

En general un polígono monónoto se define con respecto a una línea.

Geometría Computacional

Cadena

derecha

Regular Vertex

Page 3: Geométria computacional:   Polígonos y-monótonos

Triangulanción de un Polígono Y-MonótonoGeometría Computacional

Usar la técnica de algoritmo Greddy (glotón) recorriendo los vértices en orden descendente por el eje Y.

Si desde el vértice actual no se puede trazar una diagonal, se adiciona a una pila S.

Para verificar si se puede trazar una diagonal se chequea con los dos vértices en el tope de la pila S.

Cuando se pueda trazar una diagonal se trazan todas aquellas que sean posibles sacando vértices de la pila S.

En la pila S siempre deben quedar al menos dos vértices para chequear con el próximo vértice.

Page 4: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

q

r

s

t

uj-1

S

uj-1

Page 5: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

r

s

t

uj-1

S

Page 6: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

r

s

t

S

Page 7: Geométria computacional:   Polígonos y-monótonos

t

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

r

s

S

Page 8: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

r

s

S

Page 9: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

r

s

S

Page 10: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

r

S

Page 11: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

r

S

Page 12: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

S

Page 13: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

q

S

Page 14: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

S

Page 15: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

S

Push

Page 16: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

Push

uj-1

S

Page 17: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

Push

uj-1

S

Page 18: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Próximo en la cadena contraria

t

s

r

q

uj

uj-1

Pop

Push

uj-1

S

uj

Page 19: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

s

t

uj-1

S

Page 20: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

s

t

uj-1

S

Pop

Page 21: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

s

t

S

Pop

Page 22: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

s

t

S

Pop

Page 23: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

s

S

Pop

Page 24: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

s

S

Pop

Page 25: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

s

S

Pop

Page 26: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

S

Pop

Page 27: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

r

S

Pop

Page 28: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

S

Pop

Page 29: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

S

Pop

Page 30: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

S

Pop

Push

Page 31: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

S

Pop

Push

r

Page 32: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

S

Pop

Push

r

Page 33: Geométria computacional:   Polígonos y-monótonos

Geometría Computacional

Cambio de giro en la misma cadena

uj-1

t

s

r

q

uj

q

S

Pop

Push

r

uj

Page 34: Geométria computacional:   Polígonos y-monótonos

TriangulateMonotonePolygon(P)

Input: A y-monotone polygon P sotored in a DCEL D.

Output: A triangulation of P stored in D.

1. Merge all vertices of P into one sequence sorted on decreasing

y coordinate.

2. Initialize an empty stack S and push u1 and u2 onto it.

3. for j ← 3 to n – 1

4. if uj and Top(S) are on different chains

5. then v = Pop(S)

6. while !IsEmpty(S)

7. insert into D a diagonal from uj to v

8. v = Pop(S)

9. Push(S, uj-1)

10. else v = Pop(S)

11. while !IsEmpty(S) and Top(S) is visible from uj12. v = Pop(S)

13. insert into D a diagonal from uj to v

14. Push(S, v)

15. Push(S, uj)

16. Add diagonals from un to all stack vertices except the first

and the last one.

Geometría Computacional

Page 35: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u1

u2

u2

u3

u3

u4

u3

u5u6

u7

u8

u9

u5

u10

u11

u7

u11

u12

S

Page 36: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u1

u2

S

Page 37: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u1

u2

S

u3

Page 38: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u1

u2

S

u3

Page 39: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u1

S

u3

Page 40: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u1

S

u3

Page 41: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u3 u2

Push

Page 42: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u3

u2

Push

Page 43: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u4

S

u3

u2

Page 44: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u4

S

u3

u2

Page 45: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u4

S

u2

Page 46: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u4

S

u2

Page 47: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u4

S

Page 48: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u4

S

u3

Push

Page 49: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u4

S

u3

Push

Page 50: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

u4

S

u3u5

Page 51: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u3u5

Page 52: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

Page 53: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5 u3

Push

Page 54: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u3

Push

Page 55: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u3u6

Page 56: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u3u6

Page 57: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u3u6

Page 58: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u6

Page 59: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

Push

u6

Page 60: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

Push

u6

Page 61: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

Page 62: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

Push

Page 63: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u8

Page 64: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u8

Push

Page 65: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u8

u9

Page 66: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u8

u9

Push

Page 67: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u8

u9

u10

Page 68: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u8

u9

u10

Page 69: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u8

u10

Page 70: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u10

Page 71: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u10

Page 72: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u10

Page 73: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u10

Push

u7

Page 74: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u10

Push

u7

Page 75: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u10

u7

u11

Page 76: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u10

u7

u11

Push

Page 77: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u10

u7

u11

u12

Page 78: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u10

u7

u11

u12

Page 79: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u10

u7

u12

Page 80: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u12

Page 81: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u7

u12

Page 82: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5

u6

u12

Page 83: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5u12

Page 84: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u5u12

Page 85: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u12

Page 86: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u12

S

u11

Push

Page 87: Geométria computacional:   Polígonos y-monótonos

Polígonos Y-Monótonos

Geometría Computacional

S

u12

S

u11

Push

Page 88: Geométria computacional:   Polígonos y-monótonos

Triangulación de un Polígono Y-Monótono

Como se parte del polígono representado en una DCEL, mezclar los vértices de forma ordenada toma un tiempo O(n).

Realizando un análisis amortizado de las operaciones se obtiene que el tiempo total del algoritmo es O(n).

Geometría Computacional