Comment faire pour trouver l’aire d’un polygone simple ? Pour calculer l’aire de la figure ci-contre, où tous les sommets sont à coordonnées entières, on peut utiliser la formule de Pick1. Lorsque certains des sommets ne sont pas à coordonnées entières, on a recours à la formule des lacets de souliers.
Si I est le nombre de points à coordonnées entières à l’intérieur du polygone et F le nombre de points à coordonnées entières sur la frontière du polygone, alors la formule de Pick dit que :
\[ \text{Aire } I + \displaystyle \frac{F}{2} -1.\]
Dans notre exemple, I = 8, et F = 10, ce qui donne bien une aire de 12 unités2.
Si nous utilisons l’image de gauche, celle-ci nous montre qu’il est possible de trianguler le polygone en de multiples triangles et d’additionner l’aire de tous ces triangles, on appelle cette démarche la triangulation de polygones.
Pour utiliser la formule de Pick, il est plus facile d’avoir le dessin sous les yeux et surtout d’avoir des points à coordonnées entières, ce qui est rarement le cas. Pour ce qui est de la triangulation de polygones, celle-ci devient rapidement inutilisable pour un humain qui souhaiterait trianguler un polygone contenant des milliers de points.
Que diriez-vous de plutôt utiliser une technique simple qui fonctionne peu importe le polygone simple de départ ? Cette méthode, c’est celle des lacets de souliers.
Pourquoi des lacets de souliers ?
Pour comprendre d’où vient le nom « lacets de souliers », nous poserons tout d’abord notre problème. Rappelons qu’un polygone est une figure géométrique formée d’une ligne brisée qui se referme. Il est simple si l’intersection de deux côtés est vide ou réduite à un sommet pour deux côtés consécutifs.
Soit un polygone simple possédant n sommets orientés notés (xi; yi) où i = (1,…, n). Les sommets sont dits orientés si à partir d’un sommet choisi au hasard (noté (xi; yi), nous numérotons tous les autres sommets en parcourant le polygone en sens anti-horaire. Nous verrons plus tard ce qui se passe lorsque nous numérotons en sens horaire. Dans la figure ci-dessous, nous avons choisi comme sommet de départ le point le plus bas du polygone et nous les avons numérotés en sens anti-horaire. À partir du premier sommet, nous numérotons les sommets en suivant les flèches.
La méthode des lacets de souliers tire son nom d’une façon mnémotechnique de trouver l’aire du polygone.
- Pour débuter, nous plaçons dans deux colonnes les coordonnées x et y des sommets du polygone placés en sens anti-horaire.
- Nous fermons ensuite le polygone en ajoutant la coordonnée du sommet de départ à la dernière ligne.
- Nous ajoutons ensuite deux colonnes supplémentaires obtenues en multipliant en diagonale les coordonnées x et y.
– La première de ces colonnes est obtenue en multipliant les coordonnées des diagonales bleues;
– La seconde en multipliant les coordonnées des diagonales rouges. - Nous trouvons enfin la somme de ces deux colonnes.
On peut voir apparaître la forme des lacets de souliers dans la figure ci-dessous.
L’aire du polygone est obtenue en trouvant la différence entre la somme bleue et la somme rouge et en divisant par deux le résultat. C’est-à-dire:
Un exemple
Le meilleur moyen de comprendre la méthode des lacets de souliers est de l’utiliser dans un exemple concret. Nous reprenons donc le premier polygone rencontré où nous avons indiqué le numéro des sommets orientés en sens anti-horaire en l’indiquant en indice des coordonnées.
En représentant la méthode des lacets de souliers du polygone précédent, nous obtenons le tableau ci-dessous.
L’aire du polygone est donc donnée par :
Nous obtenons la même aire que celle obtenue par la formule de Pick.
La méthode des lacets de souliers en langage mathématique
La méthode vue précédemment est un moyen visuel de se rappeler et d’utiliser la méthode des lacets de souliers. Par contre, pour être en mesure de démontrer pourquoi cette méthode fonctionne, nous devrons utiliser une formulation mathématique.
Soit un polygone P possédant n sommets orientés en sens anti-horaire notés (xi; yi) où i = 1,…, n.
En nous basant sur les lacets présentés plus tôt, et en débutant à la colonne des abscisses (les valeurs de x), nous remarquons que nous devons multiplier l’abscisse d’un sommet avec l’ordonnée (la valeur de y) du sommet suivant (représenté par les diagonales bleues et donc xiyi+1). Nous devons ensuite multiplier l’ordonnée d’un sommet avec l’abscise du sommet suivant (représenté par les diagonales rouges et donc xi+1yi).
En langage mathématique, nous obtenons que l’aire du polygone P, notée Aire(P) est donnée par3:
Pourquoi tourner en sens anti-horaire ?
Depuis le début de cet article, nous numérotons nos sommets en sens anti-horaire pour obtenir l’aire exacte de notre polygone. Mais qu’arriverait-il si nous numérotions en sens horaire ?
Intuitivement, en numérotant les sommets en sens horaire, nous allons croiser les mêmes paires de coordonnées mais en sens inverse. En d’autres termes, les diagonales qui sont formées des produits des coordonnées d’un sommet et du sommet suivant deviendront des produits des coordonnées d’un sommet et du sommet précédent. Les diagonales bleues deviendront les diagonales rouges et inversement. Plutôt que de faire Somme bleue moins Somme rouge, nous faisons l’inverse et nous obtenons la même valeur au signe près.
Plus simplement, l’aire du polygone numéroté en sens horaire est en valeur absolue égale à l’aire du polygone numéroté en sens anti-horaire.
\[|\text{Aire}(P_{\text{Sens anti-horaire}})| = |\text{Aire}(P_{\text{Sens horaire}})|\]
C’est pour cette raison que la plupart du temps la méthode des lacets de souliers est représentée avec une valeur absolue, indiquant qu’elle peut être utilisée en numérotant en sens anti-horaire ou horaire.
Mais en utilisant le sens anti-horaire on obtient toujours un nombre positif et son opposé si on utilise le sens horaire, cela justifie d’utiliser le sens antihoraire.
Pourquoi ça fonctionne ?
L’aire d’un triangle
Pour démontrer pourquoi la formule fonctionne, nous allons débuter en montrant qu’elle fonctionne pour un triangle quelconque. Nous utiliserons ensuite ce résultat pour montrer qu’elle fonctionne dans le cas de polygones.
Soit un triangle ayant comme sommets l’origine ainsi que les points de coordonnées (a; b) et (c; d). Nous pourrons ensuite généraliser notre résultat en translatant le sommet du triangle dans le plan cartésien.
Pour faciliter notre démonstration de l’aire d’un triangle, nous trouverons plutôt l’aire du parallélogramme engendré par les deux vecteurs ayant comme sommet l’origine et comme extrémités les sommets (a; b) et (c; d). On peut aussi voir ce parallélogramme comme étant formé par la réflexion du triangle de départ par rapport au segment de droite pointillé.
Il est clair que l’aire du triangle correspond à la moitié de l’aire du parallélogramme engendré.
Il est possible, en utilisant un peu d’algèbre, de trouver l’aire du parallélogramme précédent. Pour simplifier le processus, nous utiliserons une astucieuse preuve sans mots, c’est-à-dire une preuve où une image suffit à prouver un résultat. Par contre, pour vous aider un peu, j’utiliserai quand même quelques mots pour obtenir cette fameuse
image.
À partir du parallélogramme précédent, nous construisons le rectangle où le sommet en bas à gauche correspond à l’origine et le sommet en haut à droite est obtenu en additionnant les deux points de coordonnées (a; b) et (c; d). Il suffit de réfléchir un peu et d’utiliser la symétrie de la figure pour obtenir l’image suivante.
En observant la figure précédente, l’aire du parallélogramme est donnée par la différence entre l’aire du rectangle et l’aire des triangles et des rectangles représentés.
\[\begin{array}{l c l} \text{Aire}(P) &=& (a+c)(b+d)-2bc -2 \displaystyle \frac{1}{2}ab -\frac{1}{2}cd \\ &=& ab +ad+ bc +cd-2bc -ab -cd \\ &=& ad-bc. \end{array}\]
Puisque nous venons de trouver l’aire du parallélogramme, l’aire du triangle associé est la moitié de l’aire trouvée et donc égale à (ad – bc)/2.
Remarquons que la méthode des lacets de souliers redonne le même résultat lorsque utilisée avec un triangle de sommets O(0; 0), A(a; b) et B(c; d) . Prenons l’origine comme premier sommet et en numérotant ceux-ci en sens antihoraire nous avons :
L’aire du triangle est donc (ad – bc)/2, comme montré précédemment. Pour trouver cette aire, nous avons numéroté notre triangle en sens anti-horaire. Comme mentionné précédemment, si nous numérotons notre triangle en sens horaire, nous allons trouver une aire négative pour notre triangle, c’est-à-dire nous allons obtenir (bc – ad)/2.
Nous voulons maintenant trouver l’aire d’un triangle dont un des sommets ne se trouve pas à l’origine. Pour ce faire, nous allons prendre un triangle quelconque et translater un de ses sommets à l’origine. Dans la figure ci-dessous, nous avons pris un triangle de sommets (xi; yi) où i = 1, 2, 3 et nous translatons le point (x1; y1) à l’origine. Les sommets (x2; y2) et (x3; y3) translatés deviennent donc respectivement les sommets (a; b) et (c; d).
En se basant sur le résultat obtenu à l’aide du triangle dont un sommet est à l’origine, nous obtenons que l’aire d’un triangle de sommets A(x1; y1), B(x2; y2) et C(x3; y3) est donnée par :
\[\begin{array}{l c l}\text{Aire}&=& \displaystyle \frac{ad-bc}{2} \\ &=& \displaystyle \frac{(x_2-x_1)(y_3-y_1)-(y_2-y_1)(x_3-x_1)}{2}.\end{array}\]
En écrivant cette aire un peu différemment, nous obtenons :
\[\displaystyle \frac{1}{2}((x_1y_2+x_2y_3+x_3y_1) – (x_2y_1+x_3y_2+x_1y_3))\]
qui peut être réécrite :
\[\displaystyle \frac{1}{2}((x_1y_2-x_2y_1)+(x_2y_3-x_3y_2) + (x_3y_1-x_1y_3))\]
Nous retrouvons notre formule des lacets de souliers !
Comprendre intuitivement la méthode des lacets de souliers
Une preuve par récurrence de la méthode des lacets de souliers est présentée à la page suivante. Il est par contre difficile de comprendre intuitivement pour quoi la méthode fonctionne uniquement en étudiant cette preuve.
Rappelons que la méthode des lacets de souliers est obtenue en sommant les aires signées (positive si on numérote en sens anti-horaire et négative si on numérote en sens horaire) des triangles de sommets OSiSi+1 où le sommet O peut être n’importe où dans le plan.
Puisque le point O peut se trouver n’importe où dans le plan, nous allons le choisir pour débuter à l’intérieur du polygone (le cas où le point O se trouve à l’extérieur du polygone est un peu plus compliqué, voir section Problèmes).
Soit le polygone ci-dessous ainsi que les triangles OSiSi+1. On remarque que tous les triangles indiqués sont numérotés en sens horaire et nous donnent des aires positives. Nous avons colorié tous les triangles de couleurs différentes.
Puisque la méthode des lacets de souliers est en fait la somme des aires signées des triangles, nous obtenons l’aire complète du polygone.
Conclusion
La méthode présentée dans cet article présente une manière simple de calculer l’aire d’un polygone, aussi compliqué soit-il. C’est la méthode utilisée par Google Earth si vous lui demandez une aire de polygone. En effet, la formule est utilisée en arpentage, où il suffit de rentrer les coordonnées des sommets, par exemple répertoriées par un GPS et la formule programmée à l’avance dans un appareil peut directement calculer l’aire encerclée par l’arpenteur.
Une preuve par récurrence
Pour montrer que la méthode des lacets de souliers fonctionne pour un polygone possédant n sommets, nous procéderons par récurrence. Appelons Si les sommets de notre polygone.
Nous savons que la méthode fonctionne pour un polygone S1S2S3 (un triangle). Supposons que la méthode fonctionne pour un polygone S1S2S3…Sn. Nous voulons prouver qu’elle fonctionne aussi pour un polygone S1S2S3… SnSn+1.
Idéalement, nous voudrions découper le polygone S1S2S3… SnSn+1 en deux polygones, le premier est un triangle formé des trois points S1SnSn + 1 et le second est le polygone formé des points S1S2S3…Sn.
Le but est que ceci crée deux polygones en partant du polygone de départ et en le coupant le long de la diagonale S1Sn. Mais une diagonale entre deux sommets dont les indices diffèrent de 2 n’est pas toujours à l’intérieur du polygone comme le montre l’exemple de la figure ci-contre.
Si une diagonale entre deux sommets dont les indices diffèrent de deux est à l’intérieur du polygone, alors elle découpe un triangle lui aussi à l’intérieur du polygone. Un tel triangle est appelé oreille. Un théorème de géométrie affirme qu’un polygone admet toujours au moins deux oreilles. Donc, la preuve fonctionne en choisissant le sommet S1 à la sortie d’une oreille.
Nous savons, par hypothèse et parce que le polygone S1SnSn + 1 est un triangle que :
\[\text{Aire}(S_1S_2S_3 \cdots S_n) = \displaystyle \frac{1}{2} \left (\sum^{n-1}_{i=1} (x_iy_{i+1}-x_{i+1}y_i) + (x_ny_1-x_1y_n) \right ),\]
\[\text{Aire}(S_1S_nS_{n+1}) = \displaystyle \frac{1}{2} ((x_1y_n+x_ny_{n+1}+x_{n+1}y_1)-(x_ny_1+x_{n+1}y_n+x_1y_{n+1})).\]
L’aire totale du polygone correspond à la somme des aires des deux polygones précédents :
\[\text{Aire}(S_1S_2S_3 \cdots S_nS_{n+1}) = \text{Aire}(S_1S_2S_3 \cdots S_n) + \text{Aire}(S_1S_nS_{n+1})\]
\[= \displaystyle \frac{1}{2} \left (\sum^{n-1}_{i=1} (x_iy_{i+1}-x_{i+1}y_i) + (x_ny_1-x_1y_n) \right ),\]
\[\cdots + \frac{1}{2} ((x_1x_n+x_ny_{n+1}+x_{n+1}y_1)-(x_ny_1+x_{n+1}y_n+x_1y_{n+1}))\]
\[= \displaystyle \frac{1}{2} \left (\sum^{n}_{i=1}(x_iy_{i+1}-x_{i+1}y_i) + (x_{n+1}y_1-x_1y_{n+1}) \right ).\]
Nous venons donc de démontrer que la méthode des lacets de souliers fonctionne pour tout polygone.
Pour en s\(\alpha\)voir plus !
- Braden, Bart. « The surveyor’s area formula ». The College Mathematics Journal 17 (4): 326–37, 1986.
- Golomb, Solomon W. « Proof without words: A 2 × 2 determinant is the area of a parallelogram ». Mathematics Magazine 58 (2): 107–7, 1985.
- Lim, Woong. « Shoelace formula: connecting the area of a polygon and vector cross product ». The Mathematics Teacher 110 (April) : 631–36, 2017.
- Laforest, Marc, et Isabelle Jalliffier-Verne. « La formule de Pick ». Accromath, vol. 5, été-automne, 2010, pp. 10–13.
- Rakhmanov, Ochilbek. « A new approach (extra vertex) and generalization of shoelace algorithm usage in convex polygon (point-in-polygon) ». CoRR abs/1907.11015, 2019.
- Voir « La formule de Pick », Accromath, volume 5.2. – été-automne 2010. ↩
- Sur la triangulation, voir dans ce numéro « Surveiller une galerie d’art » et « Jean Deshaies, la carthographie du fleuve ». ↩
- Le symbole \(\sum\) est un moyen d’écrire une somme sous une forme plus compacte, nous évitant ainsi d’écrire plusieurs additions. Par exemple, la somme des n premiers entiers peut s’écrire : \(1+2+3+4 \cdots + 98+99+100 = \displaystyle \sum^{100}_{i=1} i\) ↩