Étant donné un polygone dans le plan, vous devez dire s'il est étoilé ou non. Un polygone est dit étoilé s'il existe un point du plan P tel que pour tout autre point du polygone Q, le segment [P;Q] est dans le polygone. En particulier, un polygone convexe est toujours étoilé (tout point P du polygone convient).
Par exemple, un triangle est toujours étoilé puisqu'il est
convexe. Tout quadrilatère est également étoilé, même s'il n'est pas
forcément convexe. La figure suivante contient un polygone qui n'est
pas étoilé.
Si vous avez besoin à un moment dans votre algorithme de vérifier si
un point est à l'intérieur d'un polygone, réfléchissez au nombre
d'intersections avec des arêtes du polygone qu'aurait une demi-droite
partant du point considéré.
Entrée
L'entrée du programme contient une liste de coordonnées sous la forme suivante:
xa ya xb yb xc yc
Cette liste de coordonnées correspond aux points A, B, C... rencontrés en décrivant le périmètre du polygone considéré. Attention, le premier point n'est pas répété à la fin par soucis d'économie.
Pour plus de simplicité, le polygone est considéré comme étant simple,
c'est à dire que l'intersection de deux de ses arêtes est toujours
vide (elles ne se croisent donc pas). Attention aux problèmes de précision, nous vous conseillons d'être prudent avec les éventuels arrondis. Les tests pour cet exercice ne sont pas là pour vous pièger sur ces aspects donc profitez-en pour assurer un peu les calculs (en particulier en cas d'égalité : on dira par exemple que a = b si b - 0.001 < a < b + 0.001).
Enfin, toujours pour plus de simplicité, les arêtes orientées A->B,
B->C etc sont telles que l'intérieur du polygone est toujours du côté
des angles indirects par rapport à cette arête (0 0 1 0 1 1 0 1 n'est pas une description valide de polygone).
Sortie
La sortie de votre programme devra contenir soit "true" soit "false" selon que le polygone décrit par l'entrée est étoilé ou non. La réponse sera suivie d'un retour à la ligne.