next up previous contents
suivant: Première stratégie (TRIMIN1.C) monter: Essais successifs précédent: Essais successifs   Table des matières

La fonction "valideCorde"

Cette fonction "valideCorde(i,j,nbCordesTracees)" rend VRAI si la corde joignant les sommets $ S_i$ et $ S_j$ n'a pas déjà été tracée et si elle ne coupe aucune des nbCordesTracees cordes déjà tracées. Les cordes déjà tracées sont stockées dans le tableau "resultatCourant".

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 $ S_{i-1}$ et $ S_{i+1}$.

Ainsi : soit les cordes (i,j) et (r,s) avec $ i<j$ et $ r<s$ et i, j, r, s des valeurs différentes : si $ r<i<j<s$ ou $ i<r<s<j$ alors les cordes ne se coupent pas. si $ r<i<s<j$ ou $ i<r<j<s$ 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 à $ ]k,l[$.

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).


next up previous contents
suivant: Première stratégie (TRIMIN1.C) monter: Essais successifs précédent: Essais successifs   Table des matières
Alexandre DAGAN
2000-07-07