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 G(𝒫) de la manière suivante. Les sommets du graphe G(𝒫) sont les faces du polyèdre 𝒫 et deux sommets du graphe G(𝒫) sont reliés si les deux faces correspondantes de 𝒫 ont une arête commune. Les arêtes de 𝒫 correspondent aux arêtes du graphe G(𝒫). Le graphe G(𝒫) est connexe.
Si M est la matrice d'adjacence de G(𝒫) (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 3: 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
(0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0).
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
(0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0).
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
(0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0).
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
(0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0)4 4 4 4 4 4 3 3 3 3 3 3 3 3.
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) Pat un graphe G(Pat): 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, G(Pat) est un sous-graphe du graphe du polyèdre G(𝒫).
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 G(𝒫).
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 Pat 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 n 1, ..., n f 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 f1 arêtes (comme tout arbre).
  3. Le patron Pat a f faces (correspondant aux f sommets de 𝒜 et aux f faces de 𝒫) et f1 arêtes (arêtes de pliage).
  4. On obtient un patron en partant d'une face à n 1 sommets et en recollant une à une les autres faces. Cette opération ajoute n i2 nouveaux sommets. Le nombre de sommets de Pat est donc
    n 1+ i=2 f(n i2)= i=1 fn i2f+2.
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 f1.
  1. Le nombre a d'arêtes de 𝒫 est égal à c2+f1.
  2. Le nombre s de sommets de 𝒫 est égal à c2+1.
Pour le démontrer, on peut utiliser la formule d'Euler appliquée au polyèdre convexe 𝒫 qui dit que sa+f=2.
Exemple
Rappelons que la matrice du graphe du tétraèdre est
(0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0)
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 63=3 arêtes et correspond à des arbres couvrants du graphe du tétraèdre. Voici deux exemples.
(0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0)
(0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0)

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 Pat une fonction de [1,d] 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 𝒜(j) comme la première étape sur ce chemin. Par convention, 𝒜(r)=r.
On obtient ainsi une fonction de [1,d] dans lui-même telle que 𝒜(r)=r et que pour tout j, il existe k<d tel que 𝒜 k(j)=r.
Toute fonction de ce type donne un graphe dont la matrice d'adjacence vérifie que M i,j=1 si et seulement si ( 𝒜(i)=j ou 𝒜(j)=i) et ij. Ce graphe est un arbre couvrant car il est clairement connexe et a d1 arêtes (cf. Graphes ).
On coupe les arêtes du polyèdre séparant deux faces i et j si et seulement si 𝒜(i)j et 𝒜(j)i. 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 𝒜(1)=2, 𝒜(2)=4, 𝒜(3)=1, 𝒜(4)=4 est
(0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0).
On note une telle fonction 𝒜 par [2,4,1,4].
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 [1,d] dans lui même, et tester pour chacune si elle vérifie la condition que 𝒜(r)=r et que pour tout j, il existe k<d tel que 𝒜 k(j)=r. 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 {j,i}j est le sommet d'où l'on vient.
On obtient un arbre couvrant car 𝒜 est connexe avec s sommets et s1 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 13635642. 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 [1,4,1,6,3,3].

Préliminaires géométriques

On travaille dans l'espace euclidien 3 de base canonique (i,j,k) ou dans le plan euclidien 2 vu comme le plan d'équation z=0 orthogonal à k.

Lemme

Soient v 1 et v 2 deux vecteurs de 2 de même norme. Il existe une unique rotation qui envoie v 1 sur v 2. Elle est donnée par
1v 1 v 2 (v 1v 2 det(v 1,v 2) det(v 1,v 2) v 1v 2)=(cos(θ) sin(θ) sin(θ) cos(θ))
avec cos(θ)=v 1v 2v 1 v 2 et sin(θ)=det(v 1,v 2)v 1 v 2 .

Lemme

Soient v et v deux vecteurs non colinéaires de 3. La base (v 1,v 2,n) donnée par v 1=vv , n=v 1vv 1v , v 2=nv 1 est une base orthonormée directe. Les plans (v,v) et (v 1,v 2) sont égaux avec même orientation.

Lemme

Soient v 1 et v 2 deux vecteurs unitaires de 3 et n 1 (resp. n 2) un vecteur unitaire orthogonal à v 1 (resp. v 2). Il existe une unique rotation qui envoie v 1 sur v 2 et n 1 sur n 2.
Soit w 1 (resp. w 2) tel que (v 1,w 1,n 1) (resp. (v 2,w 2,n 2)) soit une base orthonormée directe. Il existe une unique rotation envoyant une base orthonomormée directe sur une autre. Explicitement, si M 1 (resp. M 2) est la matrice de (v 1,w 1,n 1) (resp. de (v 2,w 2,n 2)) dans la base (i,j,k) canonique, la matrice de la rotation est donnée par M 2M 1 1=M 2M 1 t.

Lemme

Soient deux points distincts A et B dans 3 et n AB un vecteur unitaire orthogonal à AB. Soient deux points P et Q du plan d'équation z=0 tels que PQ et AB soient de même longueur. Soit θ[0,π[. Soit w le vecteur unitaire du plan orthogonal à AB, faisant un angle theta avec n AB et tel que (AB,w,n AB) soit direct ( det(AB,w,n AB)0). Il existe un unique déplacement qui envoie (P,Q) sur (A,B) et le vecteur k sur w.
Nous allons le calculer explicitement. Pour simplifier les formules, supposons que AB et PQ sont unitaires. Le vecteur w est donné par
w=sin(θ)n ABAB+cos(θ)n AB
et on a
wAB=cos(θ)n ABAB+sin(θ)n AB.
On veut donc envoyer ( PQ, kPQ, k) sur ( AB, wAB, w). La matrice de ( PQ, kPQ, k) dans la base (i,j,k) est
M 1=(p 1 p 2 0 p 2 p 1 0 0 0 1)
avec PQ=(p 1 p 2 0). En posant n AB=(n 1 n 2 n 3) et AB=(a 1 a 2 a 3), la matrice de ( AB, wAB, w) dans la base (i,j,k) est
M 2=(a 1 cos(θ)(n 2a 3n 3a 2)+sin(θ)n 1 sin(θ)(n 2a 3n 3a 2)+cos(θ)n 1 a 2 cos(θ)(n 3a 1n 1a 3)+sin(θ)n 2 sin(θ)(n 3a 1n 1a 3)+cos(θ)n 2 a 3 cos(θ)(n 1a 2n 2a 1)+sin(θ)n 3 sin(θ)(n 1a 2n 2a 1)+cos(θ)n 3).
La matrice de la transformation dans la base canonique est donc M 2M 1 1=M 2M 1 t. La troisième colonne de M 2M 1 t est la troisième colonne de M 2 (autrement dit w) puisqu'on envoie k sur w.

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 S 1,,S t, S iS i+1S i+1S i+2 pour i=1,,t1 et S tS 1S 1S 2 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, 𝒜(j) 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 𝒜(t)=s.
  1. On calcule l'arête (S 1S 2) du polyèdre de la face t telle que (S 2S 1) est une arête de la face s. On connait les sommets S 𝒫,1 et S 𝒫,2 correspondants sur le patron.
  2. On calcule alors le déplacement qui envoie les sommets S 1 et S 2 du polyèdre sur les sommets S 𝒫,1 et S 𝒫,2 du patron et la normale extérieure unitaire à la face t sur le vecteur unitaire k (lemme deptheta avec θ=0).
  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 n 1,s.
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" Pat u. Le patron que l'on désire replier dans le plan orthogonal à k est Pat 0 et le polyèdre dans 3 est Pat 1. On procède comme pour la construction du patron.
Supposons qu'une face numéro s de Pat u soit déjà calculée ainsi qu'une normale unitaire n u,s et que la face numéro t de Pat us=𝒜(t) n'ait pas été encore calculée. On calcule l'arête (S 1,S 2) du polyèdre de la face t telle que (S 2,S 1) est une arête de la face s. On connait l'arête (S 1 (0),S 2 (0)) (resp. (S 1 (u),S 2 (u))) correspondante sur Pat 0 (resp. Pat u). Le lemme deptheta avec
  1. (P,Q)=(S 1 (0),S 2 (0)), (A,B)=(S 1 (u),S 2 (u)),
  2. n AB la normale extérieure n u,s de la face numéro s de Pat u,
  3. θ=uφ 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 Pat 0 et d'obtenir la normale extérieure n u,t (le w 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 s f de 𝒫 *. Soit t un sommet de 𝒫. Soit {f 1,,f r} l'ensemble des faces auquel t appartient, ordonné de manière à ce que
  1. f i et f i+1 ont une arête commune
  2. si f 1=(,s,t,u,), le successeur de t dans la face f 2 est s (cela restera alors vrai pour i2).
On a alors f if i+1={t,t i}. Si on est parti d'un polyèdre, {f 1,,f r} 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 f t *=(s f 1 *,,s f r *) de 𝒫 * et on associe à une arête a de 𝒫 entre les faces f 1 et f 2 l'arête de 𝒫 * qui relie les sommets s f 1 * et s f 2 *.
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 P A perpendiculaire au segment CA et tel que le produit des distances algébriques de C à A et à P A est égale à r 2. Le polyèdre dual est le polyèdre convexe dont les faces sont contenues dans les plans P A. La face du polyèdre dual 𝒫 * associée à A est la face contenue dans le plan P A.
À 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.