Encontrar el ángulo interior
Este desafío trata sobre polígonos no convexos, como los dos polígonos representados abajo.

Una propiedad especial de los polígonos no convexos es que, para algunos de sus vértices, el ángulo alrededor de ese vértice que está contenido dentro del polígono es un ángulo reflejo, es decir, un ángulo de más de 180 grados. Por esta razón:
- En el polígono de la izquierda decimos que
(1, 1), (3, 1)son vértices reflejos (ya que el ángulo dentro del polígono es un ángulo reflejo), mientras que(0, 0), (4, 0), (2, 5)son vértices regulares. - En el polígono de la derecha decimos que
(1, 1)es un vértice reflejo, mientras que todos los demás vértices son vértices regulares.
Escribe una función que reciba:
- Un polígono descrito como una lista de vértices, donde cada vértice se conecta con el siguiente y el último se conecta con el primero (por ejemplo, los polígonos de arriba se describen mediante
[(0, 0), (4, 0), (3, 1), (2, 5), (1, 1)]y[(0, 0), (4, 0), (3, 1), (1, 1), (2, 5)]) y ... - Uno de los vértices del polígono.
Determina si el vértice dado es un vértice "regular" o un vértice "reflex".
Ejemplos (usando los polígonos representados arriba)
which_side([(0, 0), (4, 0), (3, 1), (2, 5), (1, 1)], (3, 1)) ➞ "reflex"
which_side([(0, 0), (4, 0), (3, 1), (2, 5), (1, 1)], (0, 0)) ➞ "regular"
which_side([(0, 0), (4, 0), (3, 1), (1, 1), (2, 5)], (3, 1)) ➞ "regular"
which_side([(0, 0), (4, 0), (3, 1), (1, 1), (2, 5)], (1, 1)) ➞ "reflex"Notas
- El orden de los vértices es importante al especificar el polígono y, por lo tanto, afecta si cada vértice es reflejo o no (por ejemplo, los dos polígonos de arriba tienen exactamente los mismos vértices, pero
(3,1)es reflejo en el polígono de la izquierda y regular en el de la derecha). - En ambos ejemplos de arriba, los vértices de los polígonos aparecen en orden antihorario, pero las pruebas incluirán casos con orden horario y antihorario.