Patrons d'un polyèdre convexe

Patrons d'un polyèdre convexe


On s'intéresse ici aux polyèdres convexes et à la manière de les construire à partir d'une feuille de papier, ce qu'on appelle un patron. Pour la définition d'un polyèdre convexe, voir le document Doc Polyèdres convexes semi-réguliers .
Nous parlerons donc des sommets, des arêtes et des faces du polyèdre. En particulier, chaque face est contenue dans un plan qui divise l'espace en deux régions et le polyèdre est convexe si, pour chacune de ses faces, il se trouve entièrement dans l'une des régions délimitée par le plan qui contient cette face.
Voir aussi l'outil de visualisation Polyèdres convexes montre des polyèdres convexes et leurs patrons.

Graphe associé à un polyèdre

Patron

Algorithme d'obtention de patrons

Retrouver le polyèdre à partir du patron

Exemples

Dualité

Bibliographie

Graphe associé à un polyèdre

Patrons d'un polyèdre convexe → Graphe associé à un polyèdre
On associe à un polyèdre un graphe de la manière suivante. Les sommets du graphe sont les faces du polyèdre et deux sommets du graphe sont reliés si les deux faces correspondantes de ont une arête commune. Les arêtes de correspondent aux arêtes du graphe . Le graphe est connexe.
Si M est la matrice d'adjacence de (une fois choisi un ordre dans la liste des faces de , ce que nous supposerons désormais), le nombre de 1 sur une ligne (et sur une colonne) est le nombre de côtés de la face correspondante.
Nous parlerons de polyèdre combinatoire quand seules sont connues ou utilisées les données du graphe et pas les coordonnées dans : plus précisément, c'est un graphe augmenté de la donnée de cycles qu'on appelle faces, chaque arête apparaissant dans exactement deux cycles, une fois dans chaque sens.
Exemple [ Tétraèdre ]
Voici un tétraèdre

La matrice d'adjacence du graphe associé au tétraèdre est
Ce graphe a 4 sommets et les 4 faces du tétraèdre sont des triangles. On peut représenter son graphe de la manière suivante:

Exemple [ Cube ]

Voici un cube

La matrice d'adjacence du graphe associé au cube est
Le graphe a 6 sommets et les 6 faces du cube sont des carrés.
On peut représenter son graphe de la manière suivante:

Exemple [ Dodécaèdre régulier ]
Voici un dodécaèdre:

La matrice d'adjacence du graphe associé au dodécaèdre régulier est
Le graphe a 12 sommets et les 12 faces du dodécaèdre régulier sont des pentagones.
On peut représenter son graphe de la manière suivante:

Exemple [ Cuboctaèdre ]
Voici un cuboctaèdre ou cube tronqué:

La matrice d'adjacence du graphe associé au cuboctaèdre est
Le graphe du cuboctaèdre a 14 sommets, 6 des faces du cuboctaèdre sont des carrés et 8 d'entre elles sont des triangles.
Le graphe associé peut être représenté de la manière suivante:
Patrons d'un polyèdre convexe → Graphe associé à un polyèdre

Patron

Technique de confection d'un patron

Patrons d'un polyèdre convexePatron → Technique de confection d'un patron
Commençons par une description concrète (nous ne formaliserons pas la définition, rappelons la définition du dictionnaire encyclopédique Quillet: patron: Modèle sur lequel ou d'après lequel on travaille. Morceau de papier que les tailleurs, les couturières, les brodeuses, etc découpent de manière à figurer les différentes parties de leur ouvrage et d'après lequel ils taillent l'étoffe dont ces ouvrages doivent être faits; nous rajouterons ici que l'on désire ensuite faire le moins de coutures possibles).
On désire construire un polyèdre convexe à l'aide d'une feuille de papier. Pour cela, on doit aplatir le polyèdre en découpant certaines arêtes. Il faut découper suffisamment d'arêtes pour pouvoir l'étaler sur une feuille de papier et pas trop pour qu'il n'y ait qu'un seul morceau. Il faut aussi que les différents polygones obtenus à partir des faces du polyèdre ne se chevauchent pas. On appelle le résultat un patron du polyèdre. C'est donc une réunion de polygones dans le plan tels que l'intersection de deux de ces polygones est soit vide, soit un sommet commun, soit une arête commune. On désigne encore ces polygones par le nom de faces du patron. Les arêtes du polyèdre qui ne sont pas découpées deviennent des côtés communs à deux des faces (arêtes de pliage du patron). Les arêtes qui sont découpées deviennent deux côtés du bord du patron. Lorsque la condition de non-chevauchement n'est pas vérifiée, nous parlerons de pseudo-patron.
On conjecture que tout polyèdre convexe a au moins un patron (Albrecht Dürer (1525), énoncé comme une conjecture en 1975 par G. Shephard Shephard ).
On associe à un patron (ou à un pseudo-patron) un graphe : ses sommets sont les faces du patron et deux sommets sont reliés dans le graphe si les faces ont un côté commun dans le patron. Les faces du polyèdre correspondent aux faces du patron, l'ensemble des arêtes du graphe du patron (arêtes de pliages du patron) est un sous-ensemble des arêtes du graphe associé du polyèdre. Donc, est un sous-graphe du graphe du polyèdre .
Quand on a bien découpé le polyèdre, on peut aller d'un sommet à un autre (connexité), d'une seule manière (acyclicité): le graphe associé est ce qu'on appelle un arbre couvrant de .
Patrons d'un polyèdre convexePatron → Technique de confection d'un patron

Patron et arbre couvrant

Patrons d'un polyèdre convexePatron → Patron et arbre couvrant
Rappelons quelques définitions (voir le document Graphes pour des explications plus complètes). Si G est un graphe connexe, un graphe couvrant de G est un graphe dont les sommets sont exactement les sommets de G et dont les arêtes forment un sous-ensemble de celles de G. Un arbre couvrant d'un graphe connexe est un graphe couvrant qui est un arbre, c'est-à-dire qu'il est connexe et acyclique.
Soit un patron de d'arbre couvrant . Soient s, f et a le nombre de sommets, de faces et d'arêtes du polyèdre et soient n1, ..., nf les nombres de sommets des faces du polyèdre.
  1. Le graphe G de a f sommets et a arêtes.
  2. L'arbre a f sommets et f-1 arêtes (comme tout arbre).
  3. Le patron a f faces (correspondant aux f sommets de et aux f faces de ) et f-1 arêtes (arêtes de pliage).
  4. On obtient un patron en partant d'une face à n1 sommets et en recollant une à une les autres faces. Cette opération ajoute ni-2 nouveaux sommets. Le nombre de sommets de est donc
Comment retrouver les nombres s, a et f du polyèdre à partir des caractéristiques du patron? Soit c le nombre de côtés extérieurs du patron. Le nombre de côtés intérieurs du patron est f-1.
  1. Le nombre a d'arêtes de est égal à .
  2. Le nombre s de sommets de est égal à .
Pour le démontrer, on peut utiliser la formule d'Euler appliquée au polyèdre convexe qui dit que s-a+f=2.
Exemple
Rappelons que la matrice du graphe du tétraèdre est
Il a 6 arêtes. Cherchons des matrices correspondant à un arbre couvrant du tétraèdre. Comme un arbre est connexe et sans cycle, on doit couper au moins 3 arêtes pour qu'il n'y ait plus de cycles et au plus 3 pour qu'il reste connexe. Le graphe des matrices suivantes a 6-3=3 arêtes et correspond à des arbres couvrants du graphe du tétraèdre. Voici deux exemples.

Exemple

Exemple

Patrons d'un polyèdre convexePatron → Patron et arbre couvrant

Fonction associée à un arbre couvrant (ou à un patron)

Patrons d'un polyèdre convexePatron → Fonction associée à un arbre couvrant (ou à un patron)
Numérotons de 1 à d les faces du polyèdre. Choisissons une face r du polyèdre. Nous allons associer à un patron une fonction de dans lui-même de la manière suivante. Soit j une face. Il existe un seul chemin simple allant de j à r. On définit comme la première étape sur ce chemin. Par convention, .
On obtient ainsi une fonction de dans lui-même telle que et que pour tout j, il existe k<d tel que .
Toute fonction de ce type donne un graphe dont la matrice d'adjacence vérifie que si et seulement si ( ou ) et . Ce graphe est un arbre couvrant car il est clairement connexe et a d-1 arêtes (cf. Graphes ).
On coupe les arêtes du polyèdre séparant deux faces i et j si et seulement si et . Cela permet d'étaler le polyèdre sur un plan. Si les morceaux de papier obtenus ne se chevauchent pas, on a obtenu un patron. Sinon, c'est juste un pseudo-patron. Par exemple, la matrice associée à l'arbre couvrant tel que , , , est
On note une telle fonction par .
Exemple
[ ]

Exemple
[ ]

Exemple
[ ]

Patrons d'un polyèdre convexePatron → Fonction associée à un arbre couvrant (ou à un patron)

Algorithme d'obtention de patrons

Patrons d'un polyèdre convexe → Algorithme d'obtention de patrons
Patrons d'un polyèdre convexe → Algorithme d'obtention de patrons

Calcul d'un arbre couvrant

On peut facilement énumérer toutes les fonctions de dans lui même, et tester pour chacune si elle vérifie la condition que et que pour tout j, il existe k < d tel que . Mais leur nombre pouvant être énorme, il est utile de pouvoir en choisir une au hasard.
L'algorithme suivant de A. Broder Generating random spanning trees A. Broder 30th Annual Symposium on Foundations of Computer Science Year: 1989 | Conference Paper | Publisher: IEEE permet de trouver un arbre couvrant aléatoire de manière uniformément distribuée.

On simule une marche aléatoire simple sur le graphe en partant du sommet r
(racine)
jusqu'à ce que tout sommet soit visité. Autrement dit:
  1. On part du sommet r.
  2. À chaque étape, on choisit un voisin aléatoirement et de manière uniforme.
  3. À chaque fois qu'on visite un nouveau sommet i, on rajoute dans le sommet
    i et l'arête où j est le sommet d'où l'on vient.
On obtient un arbre couvrant car est connexe avec s sommets et s - 1 arêtes (une pour chaque arête différente de r). On montre qu'il est uniformément distribué.
Exemple
Prenons le graphe du cube (voir exemple cube ) et la marche aléatoire suivante 1-3-6-3-5-6-4-2. Les nouveaux sommets apparaissent dans l'ordre 1, 3, 6, 5, 4, 2. La racine est 1. Les arêtes de l'arbre couvrant sont celles de leur première apparition, c'est-à-dire (1,3), (3,6), (3,5), (6,4), (4,2). La fonction associée est donnée par .

Préliminaires géométriques

On travaille dans l'espace euclidien de base canonique ou dans le plan euclidien vu comme le plan d'équation z=0 orthogonal à .

Lemme

Soient et deux vecteurs de de même norme. Il existe une unique rotation qui envoie sur . Elle est donnée par
avec et .

Lemme

Soient et deux vecteurs non colinéaires de . La base donnée par , , est une base orthonormée directe. Les plans et sont égaux avec même orientation.

Lemme

Soient et deux vecteurs unitaires de et (resp. ) un vecteur unitaire orthogonal à (resp. ). Il existe une unique rotation qui envoie sur et sur .
Soit (resp. ) tel que (resp. ) soit une base orthonormée directe. Il existe une unique rotation envoyant une base orthonomormée directe sur une autre. Explicitement, si M1 (resp. M2) est la matrice de (resp. de ) dans la base canonique, la matrice de la rotation est donnée par .

Lemme

Soient deux points distincts A et B dans et un vecteur unitaire orthogonal à . Soient deux points P et Q du plan d'équation z=0 tels que P Q et A B soient de même longueur. Soit . Soit le vecteur unitaire du plan orthogonal à , faisant un angle theta avec et tel que soit direct ( ). Il existe un unique déplacement qui envoie (P,Q) sur (A,B) et le vecteur sur .
Nous allons le calculer explicitement. Pour simplifier les formules, supposons que et sont unitaires. Le vecteur est donné par
et on a
On veut donc envoyer ( , , ) sur ( , , ). La matrice de ( , , ) dans la base est
avec . En posant et , la matrice de ( , , ) dans la base est
La matrice de la transformation dans la base canonique est donc . La troisième colonne de M2 M1t est la troisième colonne de M2 (autrement dit ) puisqu'on envoie sur .

Calcul des coordonnées des sommets du patron

Patrons d'un polyèdre convexeAlgorithme d'obtention de patrons → Calcul des coordonnées des sommets du patron
Supposons le polyèdre donné par les coordonnées de ses sommets et par la liste de ses faces: chaque face est donnée par la liste de ses sommets consécutifs orientée par une normale extérieure au polyèdre, c'est-à-dire que si les sommets sont , pour et sont des normales extérieures à la face.
Fixons une face, par exemple la dernière dans la liste des faces, nommée d. Soit un arbre couvrant du graphe des faces donné par la fonction en direction de d : si j est une face, est la face suivant j si l'on désire aller de la face j à la face d. Le but est donc d'avoir la liste des coordonnées des sommets du patron et la liste des faces.
On commence par la face d que l'on déplace dans le plan d'équation z=0. On va ensuite rajouter les faces une à une. Expliquons comment on ajoute à une face s déjà calculée une face t non encore calculée telle que .
  1. On calcule l'arête (S1 S2) du polyèdre de la face t telle que (S2 S1) est une arête de la face s. On connait les sommets et correspondants sur le patron.
  2. On calcule alors le déplacement qui envoie les sommets S1 et S2 du polyèdre sur les sommets et du patron et la normale extérieure unitaire à la face t sur le vecteur unitaire (lemme deptheta avec ).
  3. On l'applique à tous les sommets de la face t. Cela permet donc de tracer l'image de la face t dans le patron dans le plan d'équation z=0.
  4. S'il y a un chevauchement de cette face t avec les autres faces déjà calculées, on rejette l'arbre couvrant en question car il correspond à un pseudo-patron et non à un patron. Sinon, on continue à ajouter les nouvelles faces jusqu'à épuisement des faces du polyèdre.
Patrons d'un polyèdre convexeAlgorithme d'obtention de patrons → Calcul des coordonnées des sommets du patron

Retrouver le polyèdre à partir du patron

Patrons d'un polyèdre convexe → Retrouver le polyèdre à partir du patron
On a maintenant un arbre couvrant et le patron associé. On cherche à replier le patron pour obtenir le polyèdre. Les données sont donc maintenant
  • les coordonnées des sommets et les faces du polyèdre;
  • les coordonnées des sommets et les faces du patron, celles-ci étant dans le même ordre que les faces du polyèdre;
  • la correspondance entre les sommets du patron et les sommets du polyèdre;
  • pour chaque face s du polyèdre, sa normale unitaire extérieure .
On se donne un paramètre u entre 0 et 1 et on cherche à visualiser le patron qui commence à se replier. On note cette "coque" . Le patron que l'on désire replier dans le plan orthogonal à est et le polyèdre dans est . On procède comme pour la construction du patron.
Supposons qu'une face numéro s de soit déjà calculée ainsi qu'une normale unitaire et que la face numéro t de où n'ait pas été encore calculée. On calcule l'arête (S1,S2) du polyèdre de la face t telle que (S2,S1) est une arête de la face s. On connait l'arête (resp. ) correspondante sur (resp. ). Le lemme deptheta avec
  1. , ,
  2. la normale extérieure de la face numéro s de ,
  3. avec varphi l'angle entre les faces numéro s et t du polyèdre
permet de trouver un déplacement que l'on applique à tous les sommets de la face numéro t de et d'obtenir la normale extérieure (le du lemme deptheta ) et on continue
Patrons d'un polyèdre convexe → Retrouver le polyèdre à partir du patron

Exemples


Patron associé à l'arbre couvrant représenté par []

Dualité

Soit un polyèdre combinatoire. Le polyèdre combinatoire dual de est obtenu de la manière suivante. On associe à chaque face f de un sommet sf de . Soit t un sommet de . Soit l'ensemble des faces auquel t appartient, ordonné de manière à ce que
  1. fi et ont une arête commune
  2. si , le successeur de t dans la face est s (cela restera alors vrai pour ).
On a alors . Si on est parti d'un polyèdre, est simplement la liste des faces qui se rencontrent au sommet t dans l'ordre trigonométrique vu de l'extérieur.
On associe au sommet t la face de et on associe à une arête a de entre les faces f1 et f2 l'arête de qui relie les sommets et .
Les sommets du graphe associé à (qui sont les faces de ) sont donc en bijection naturelle avec les sommets de .
Une construction géométrique du polyèdre dual d'un polyèdre convexe est la suivante. On part du centre C du polyèdre (convexe), c'est-à-dire l'isobarycentre des sommets. On considère une sphère de centre C et de rayon r, par exemple 1. On définit géométriquement le polyèdre dual par polarité par rapport à cette sphère: à chaque sommet A, on associe le plan PA perpendiculaire au segment C A et tel que le produit des distances algébriques de C à A et à PA est égale à r2. Le polyèdre dual est le polyèdre convexe dont les faces sont contenues dans les plans PA. La face du polyèdre dual associée à A est la face contenue dans le plan PA.
À un arbre couvrant du graphe associé à , on associe un arbre couvrant du graphe associé à de la manière suivante. Si l'arbre de est obtenu en supprimant le sous-ensemble X d'arêtes de , l'arbre couvrant associé est obtenu en supprimant le complémentaire de l'image de X dans l'ensemble des arêtes de . Ainsi, à tout pseudo-patron de obtenu en découpant les arêtes appartenant à X, on fait correspondre le pseudo-patron de obtenu en découpant les arêtes de "croisant" (par projection sur la sphère) celles de qui ne sont pas dans X.
Exemples

Bibliographie

La bibliographie est très partielle. Beaucoup de sites internet parlent de ce sujet. Le but de ce document est simplement de présenter les algorithmes que nous avons utilisés pour permettre d'obtenir des patrons à découper (par exemple en tikz dans Polyèdres convexes ).


  • [Broder] Broder, A., Generating random spanning trees, 30th Annual Symposium on Foundations of Computer Science Year: 1989 | Conference Paper | Publisher: IEEE
  • [Dürer] Dürer, A., Unterweisung der Messung mit dem Zirkel und Richtscheit, 1525. English translation and commentary, W. Strauss, The Painter's Manual, Abaris, New York, 1977.
  • [Shephard] Shephard, G., Convex polytopes with convex nets, Math. Proc. Camb. Phil. Soc. 78 (1975) 389-403.

document sur la manière de construire des patrons des polyèdres convexes.
: polyhedron,graph, interactive mathematics, interactive math, server side interactivity

The most recent version

Cette page n'est pas dans son apparence habituelle parce que WIMS n'a pas pu reconnaître votre navigateur web.
Afin de tester le navigateur que vous utilisez, veuillez taper le mot wims ici : puis appuyez sur ``Entrer''.

Veuillez noter que les pages WIMS sont générées interactivement; elles ne sont pas des fichiers HTML ordinaires. Elles doivent être utilisées interactivement EN LIGNE. Il est inutile pour vous de les ramasser par un programme robot.