Origami, axiomes de Huzita/Justin et ReferenceFinder

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche

L'origami est un art du pliage de papier pour en faire une sculpture, soit géométrique, par exemple une boîte, soit figurative, comme un animal, une fleur, un personnage, etc... qui fut inventé en Chine au 6ème siècle. Depuis la création des ordinateurs, et de programmes dediés à ceux-ci, comme le programme ReferenceFinder, qui utilise les axiomes de Justin-Huzita-Hatori, le pliage de papier est une science qui a été développée virtuellement. L'approfondissement de la géométrie peut se faire à travers le pliage de papier, grâce aux nouvelles théories créées par celui-ci

Les machines de nos jours nous facilitent la création d'origamis, à travers de nombreux calculs de droites et de points dans un plan.

Les origamis

Origami.png

Le nombre hallucinant de mathématiques cachés derrière les origamis nous permettent de faire beaucoup plus de choses qu'avec simplement une règle et un compas. Nous pouvons notamment faire la trisection de l’angle [1], un problème classique de géométrie, faisant partie des 3 grands problèmes de l’Antiquité (avec la quadrature du cercle et la duplication du cube). Il a bien été démontré que ce problème n’était pas solvable avec une règle et un compas, mais possible grâce au pliage de papier.



Les axiomes de Justin-Huzita-Hatori

Ces axiomes ont été inventées par un groupe de 3 personnes : Jacques Justin, Humaki Huzita et Koshiro Hatori. Ils se sont demandés comment trouver tous les plis possibles et inimaginables sur une feuille de papier, en fonction de droites et de points sur celle-ci.

Les axiomes sont au nombre de 7, les 4 premiers étants plutôt basiques et facilement compréhensibles, jusqu'au dernier axiome consistant à résoudre des équations du 3ème degré pour trouver un pli, grace à plusieurs droites et points, et des opérations de perpendicularité ou de parallélisme entre les uns et les autres.

Les 6 premiers axiomes, trouvés par Humaki Huzita ont constitué le fondement de l'étude des constructions géométriques en origami pendant de nombreuses années. Ceux-ci permettent de résoudre des équations quadratiques, cubiques et quartiques avec des coefficients rationnels, des racines cubiques ou permettre de faire la trisection d'un angle.

Le 7ème axiome, découvert par Jacques Justin et Koshiro Hatori après les autres, ne permet pas la solution d'équations d'ordre supérieur aux six axiomes originaux. Mais il est tout de même bien d'avoir l'ensemble complet de tous les axiomes possibles.

Il se peut que certains axiomes soient beaucoup moins utiles que les autres, les derniers axiomes allants chercher dans la compléxité.


Axiome 1

Étant donnés deux points p1 et p2, il existe un seul pli qui passe par p1 et p2.

Axiome 1.png






Axiome 2

Étant donnés deux points p1 et p2, il existe un seul pli qui amène p1 sur p2.

Axiome 2.png






Axiome 3

Étant données deux droites d1 et d2, il existe un seul pli qui amène d1 sur d2.

Axiome 3.png






Axiome 4

Étant donnés un point p et une droite d, il existe un pli unique perpendiculaire à d qui passe ce point p.

Axiome 4.png







Axiome 5

Étant donnés deux points p1, p2 et une droite d, il existe un seul pli qui place p1 sur d et qui passe par p2.

Axiome 5.png







Axiome 6

Étant donnés deux points p1, p2 et deux droites d1, d2, il existe un seul pli qui place p1 sur d1 et place aussi p2 sur d2.

Axiome 6.png







Axiome 7

Étant donnés un point p et deux droites d1, d2, il existe un pli unique qui place p sur d1 et qui est perpendiculaire à d2.

Axiome 7.png







Exemples de l'utilisation des axiomes dans un programme

Les axiomes de Justin-Huzita-Hatori sont fondamentaux pour calculer n'importe quel pli dans un plan. Ainsi, il est possible de créer des programmes qui renvoient des plis dans un plan en fonction de ces axiomes. Nous allons voir les axiomes les plus simples, et le plus compliqué, afin de constater les différences entre eux. La définition d'un point se fait par ses coordonnées x et y, et celle d'un pli peut se faire grace aux coordonnées des 2 points à l'extrémité du plan. Le pli peut aussi se définir par un point et un vecteur directeur du pli, mais cette utilisation ne se fera pas dans les exemples suivants. Les 3 premiers axiomes étants les plus utiles, voici un de leur exemple :

Axiome 1

Ici, nous traitons l'axiome le plus simple, qui consiste à simplement lier les 2 points (Dans le cas évident où les 2 points ne sont pas les mêmes).

Axiome 1 utilisation.png

Point 1 : (0, 0)

Programme axiome 1.png

Point 2 : (1, 1)

Pli : ((0, 0) , (1, 1))





Axiome 2

L'axiome 2, qui consiste mathématiquement à calculer la médiatrice du segment (p1,p2) (Dans le cas évident où les 2 points ne sont pas les mêmes), est calculé depuis le milieu du segment et le vecteur normal de celui-ci.

Programme axiome 2.png

Point 1 : (0, 0)

Axiome 2 utilisation.png

Point 2 : (0, 1)

Pli : ((0.5, 0) , (0.5, 1))





Programme axiome 2(2).png

Point 1 : (0, 0)

Point 2 : (1, 1)

Pli : ((1, 0) , (0, 1))





Axiome 3

Cet axiome peut être considéré comme la bissectrice de l'angle créé par l'intersection des droites d1 et d2. Dans le cas où les 2 droites, et dans le cas où les 2 sont identiques, le pli sera l'une des droites sont parallèles, le pli sera la droite parallèles aux deux autres à égale distance de l'une et de l'autre.


Axiome 3 utilisation.png

Droite 1 : ((0, 0) , (0, 1))

Droite 2 : ((1, 0) , (1, 1))

Pli : ((0.5, 0) , (0.5, 1))

Axiome 3 utilisation(2).png





Droite 1 : ((0, 0) , (0, 1))

Droite 2 : ((0, 0) , (1, 1))

Pli : ((0, 0) , (0.5, 1))





Le programme ReferenceFinder

ReferenceFinder1.png
ReferenceFinder2.png
ReferenceFinder3.png

Ce programme permet de retrouver, comme son nom l'indique, des références de points ou de droites, à partir des 4 points aux angles du plan et de ses 4 droites qui le représentent, en fonction des axiomes présentés précedemment. L'utilité de ce programme est donc de retrouver comment un point ou un pli à été créé dans un plan.

Par exemple, le point (0.5, 0.5), qui est le centre du plan, est trouvé en faisant l'intersection entre les deux diagonales, ou les 2 bissectrices des droites parallèles qui représentent le plan. En rentrant le point (0.5, 0.5) dans le programme ReferenceFinder, nous obtenons donc plusieurs solutions, car ce point est obtenu un nombre de fois assez élevé. La méthode la plus simple s'obtient au bout de 2 "rangs", soit 2 actions, et les autres au bout de 5 "rangs". La première solution, la plus simple, considère les 2 premiers axiomes afin de trouver précisément le point central. On constate aussi que les autres solutions ne sont pas le point précis (0.5, 0.5), mais arrondi à quelques centièmes/millièmes près. Cela est dû aux calculs effectués avec des nombres flottants. Les points et plis du plan se stituants entre 0 et 1, tous les points sont des flottants qui, plus on les utilise, créent des approximations dans les calculs.







Le fonctionnement du programme

Concrètement, ce programme contient un certain nombre de focntions, utilisés pour créer ce que l'on cherche. Il y a donc une fonction par axiome, une fonction pour trouver l'intersection de deux droites, et une fonction qui vérifie si un point ou un pli est plus ou moins la même qu'un autre. Les fonctions dédiées aux axiomes sont plutôt simples si l'on regarde les 4 premières, mais recherchent de la résolution d'équation de 2ème ou 3ème degré pour les suivantes.

La fonction de l'axiome 2

Voici par exemple la résolution simple de l'axiome 2 : Décomposition du programme :

Axiome 2 prog.png

- Vérification que les 2 points ne sont pas les mêmes, pour que la fonction aie un sens

- Trouver le milieu du segment p1-p2

- Trouver le vecteur normal de ce segment

- Renvoyer les 2 points qui créent le pli

La fonction de l'intersection

Afin de trouver l'intersection de 2 droites, il faut vérifier que les 2 droites ne sont pas les mêmes, sinon, dans ce cas, l'intersection est la droite elle-même, et que les 2 droites ne sont pas parallèles, sinon il n'y a pas d'intersection. Dans les autres cas, il suffit de retrouver l'intersection simplement à l'aide d'un petit caclul. Dans ce cas, je symbolise les droites parallèles ou confondues par un None.

Décomposition du programme :

Intersection.png

- Calcul de la pente des deux droites

- Vérfication que les 2 droites ne sont pas les mêmes/parallèles

- Calcul du point d'intersection




La base de données du programme

BDD.png

Le programme va donc générer une base de données, partant des 4 points aux extrémités et des 4 droites, et ajouter à la base de données tous les plis possibles grâce à ces points/droites. Il va aussi ajouter tous les points créés par les intersections entre toutes les droites du plan, et cela une première fois. Le programme fera ceci récursivement, et cela un total de 6 fois (Car le calcul commence à être interminable au rang 7, et encore pire au dessus). Puisqu’il y a exponentiellement plus de droites/points, et que l’on peut quand même constater qu’il y a plus de 10 millions de lignes et plus de 25 millions de points au rang 6, on ne peut logiquement pas aller plus haut. En ayant cette base de données générée jusqu’au rang 6, il suffit juste de chercher un point dans la base de données (environ), et de retracer son chemin à l’inverse, grâce aux informations de celle-ci.

Dans la base de données, on peut trouver :

- Le numéro de la ligne

- Son rang

- L’axiome qui a permis de la créer

- Les coordonnées d’un point de la droite

- Les coordonnées x et y du vecteur de cette droite

- Dans le cas où il y en a, les points/droites qui ont permis de trouver cette ligne (Afin de retracer le chemin)



Références annexes

1. Jean-Paul Delahaye, les mathématiques de l'origami https://www.cristal.univ-lille.fr/~jdelahay/pls/255.pdf

2. Wikipédia, les axiomes de Huzita-Hatori, le détail des calculs complexes https://en.wikipedia.org/wiki/Huzita–Hatori_axioms

3. Jacques Justin, Résolution par le pliage de l'équation du troisième degré et applications géométriques https://publimath.univ-irem.fr/numerisation/ST/IST86008/IST86008.pdf