next up previous contents
Next: Eventos Up: Polígonos Previous: Convexo


Simple y convexo

Asumimos un polígono bidimensional sin puntos múltiples consecutivos.

Fijémonos en la esquina con la coordenada x mínima (si hay más de una, en aquella que también tiene la coordenada y mínima).

Si miramos ahora todos los demás puntos en el orden dado por la lista vemos que en un polígono simple y convexo: La secuencia de las coordenadas x de todos los puntos tiene como mucho un máximo. La misma condición tiene que cumplirse para la coordenada y.

¡Vaya que fácil! Sólamente hay que tener en cuenta: si todos los puntos son colineales, también se cumplen esas condiciones, pero no consideramos el polígono simple en todos los casos.

Entonces el algoritmo de comprobación de si un polígono es simple y convexo es sencillo de programar y tiene un tiempo de ejecución lineal en el número de esquinas. Lo vamos a hacer una vez conociendo un poco Leda.

Para recordar: si se usan los algoritmos (sencillos) que comprueban las condiciónes simple y convexo por separado y si se necesitaría una hora para comprobar un polígono con un millon de puntos, este último algoritmo lo haría en unos pocos milisegundos.

Además, el último algoritmo se comporta bién con los números flotantes que se usa en los procesadores. Calcular puntos de intersección o comparar ángulos entre segmentos es una verdadera aventura, si se usan dichos números flotantes.


next up previous contents
Next: Eventos Up: Polígonos Previous: Convexo
© 2003, Dr. Arno Formella & Dra. Mª Victoria Luzón García, Universidad de Vigo, Departamento de Informática