Inversion d’un damier

Auteur ou autrice : Maxime Chupin.

Mise en ligne le 6 janvier 2026

Image du résultat de l’exemple

Représentation de l'inversion géométrique d'un damier. L'inspiration provient de la vidéo de Mickaël Launay sur le sujet.

Code


%@author: Maxime Chupin
%@date: 2025-05-11
%@title: Inversion d'un damier
u:=1cm;

% les paramètres du damier 
N:=40;
inverseParam:=2u;
K:=2;
hauteur := 5*u;
deltaSquare := hauteur/N;

% definition de la transformation géométrique inverse
pair O;
O:=(0,0);

vardef inverse(expr P) =
    save s; numeric s; s = abs(P - O);
    O + (P - O) / s * inverseParam / s * inverseParam
enddef;

% la brique de base : inverse d'un carré du damier
vardef inverseCarre(expr i,j)=
    save p,c;
    pair p[];
    path c;
    string s;
    p[0]=(-deltaSquare/2,-deltaSquare/2)+(i,j)*deltaSquare;
    p[1]=(deltaSquare/2,-deltaSquare/2)+(i,j)*deltaSquare;
    p[2]=(deltaSquare/2,deltaSquare/2)+(i,j)*deltaSquare;
    p[3]=(-deltaSquare/2,deltaSquare/2)+(i,j)*deltaSquare;
    c:=for k =0 upto 3:
        for l=0 upto K:
            inverse(((1-l/K)*p[k]+(l/K)*p[(k+1) mod 4]))
            if(l<K): .. fi
        endfor
        if(k<3): -- else: --cycle fi 
    endfor;
    c
enddef;

% on parcours les cases du damier
beginfig(1);
k:=0;
for i=-N/2 upto N/2:
    for j=-N/2 upto N/2:
        k:=k+1;
        fill inverseCarre(i,j) withcolor (k mod 2 )*white + (1-(k mod 2))*black;
        fill inverseCarre(-i,-j) withcolor (k mod 2 )*white + (1-(k mod 2))*black;
    endfor
endfor
clip currentpicture to
(((-hauteur/2,-hauteur/2)--(hauteur/2,-hauteur/2)--(hauteur/2,hauteur/2)--(-hauteur/2,hauteur/2)--cycle) 
scaled 14);
endfig;

end.

Mots clés : inversiongéométriemicmath

Cet exemple fait partie de la collection d’exemples Live Mathsdrop

Fichiers


inverse-1.pdf

363.45 KB

Télécharger l’archive complète