Le principe est le suivant: dans une boucle parcourant chacune des cordes déjà tracées, on vérifie que la corde (i,j) :
La fonction "cordesDifferentes" se justifie par le fait que dans le tableau des cordes déjà tracées, on ait mémorisé la corde (j,i) identique à la corde (i,j).
La fonction "cordesNonSecantes" détermine à l'aide des
numéros des sommets joints par les cordes si celles-ci
se coupent. Cette fonction ne fait pas de calcul avec les
coordonnées des sommets, mais utilise la propriété de la
numérotation des sommets du polygone : le sommet Si a
pour voisins directs les sommets
et
.
Ainsi : soit les cordes (i,j) et (r,s) avec
et
et i, j, r, s des valeurs différentes :
si
ou
alors les cordes ne se coupent pas.
si
ou
alors les cordes sont sécantes.
Pour vérifier ces relations d'ordre, on utilise la
fonction "dansIntervalle(i,k,l)" qui rend VRAI si i
appartient à
.
D'autre part, si parmi i,j,r,s deux valeurs sont égales, les cordes ne se coupent pas (géométriquement, cela signifie que les cordes ont un sommet en commun).