{ La fonction retourne vrai si le nombre d'intersections est impair; autrement, elle retourne
faux. }
Si (Nb_intersections modulo 2) = 1 alors retourner vrai
sinon retourner faux
Une autre méthode pour déterminer l'appartenance d'un point Q à un polygone P est basée sur
l'algorithme de Cohen et Sutherland pour le découpage d'un segment de droite par rapport à une
fenêtre polygonale. Cet algorithme nécessite cependant que la fenêtre polygonale soit convexe.
On doit donc effectuer un pré-traitement sur le polygone pour vérifier sa convexité, et le
subdiviser en parties convexes s'il est concave. On peut ensuite appliquer cette adaptation de
l'algorithme de Cohen et Sutherland sur les différentes parties convexes.
La première étape de l'algorithme de Cohen et Sutherland consiste à découper l'espace en
régions, en prolongeant les côtés du polygone. À chaque région est associé un code (0 ou 1) de
longueur n (où n correspond au nombre d'arêtes), indiquant si la région contient le polygone (0)
ou non (1). Comme on peut le voir à la figure suivante, l'intérieur du polygone a toujours le
code 0000. À l'aide de ces codes et d'un point de référence à l'intérieur du polygone, on peut
vérifier si un point quelconque se trouve dans la même région. Les différentes étapes sont les
suivantes:
1. Calculer les coordonnées d'un point de référence r situé à l'intérieur de P en calculant la
moyenne des coordonnées de deux sommets non consécutifs de P.
2. Déterminer les équations des droites de prolongement des arêtes du polygone de la façon
suivante:
Pour i = 0, 1,..., n-1,
y - yi
x - xi=yi+1 - yi
xi+1 - xi
ou encore,
y - yi- x - xi
yi+1 - yi
xi+1 - xi= 0
3. Reporter les coordonnées de r dans les équations des droites de prolongement pour
déterminer le signe de la région dans laquelle se trouve r, pour chaque droite considérée:
signei(r) = signe yr- yi- xr- xi
yi+1 - yi
xi+1 - xi