Courbe du dragon

Auteur ou autrice : Maxime Chupin.

Mise en ligne le 6 janvier 2026

Image du résultat de l’exemple

Voici la courbe du dragon obtenue en dépliant une bande de papier infinie. Ce programme s’inspire du live de MicMath (Mathsdrop, Mikaël Launay).

Code


%@author: Maxime Chupin
%@date: 2026/01/06
%@description: Dragon sur une idée de MicMath dans un de ses lives 
%@compilation: double precision mpost -numbersystem=double ./dragon.mp

numeric taille;
numeric plist[];
numeric L;
L := 0.01cm;
pair P[];
pair dir;
dir := (-1,0);
numeric dirdeplie;
dirdeplie:=1;


def deplie=
    plist[taille]:=dirdeplie;
    for i=1 upto taille:
        plist[taille+i] := -1*plist[taille-i];
    endfor 
    taille := 2*taille+1;
enddef;

vardef construction(expr n)=
    for i=1 upto n:
        deplie;
    endfor
enddef;

def trace=
    P[0] := (0,0);
    P[1] := P0 + L*dir;
    draw P0--P1;
    for i=0 upto taille-1:
        dir := plist[i]*(ypart dir,-xpart dir);
        P[i+2] = P[i+1] + L*dir;
        draw P[i+1]--P[i+2] withcolor ((i+1)/taille)*(0.7,0,0) withpen pencircle
        scaled 0.4;
    endfor
enddef;

vardef addbackground(expr c) = 
    picture current;
    path bb;
    current := currentpicture;
    bbmargin := 0.2cm;
    bb := bbox current;
    fill bb withcolor c;
    draw current;
enddef;

plist[0] := 1;
taille :=1;

construction(15);

beginfig(0);
    trace;
    addbackground((0.8,0.75,0.75));
endfig;

end.

Mots clés : dragonfractalmicmathdouble

Cet exemple fait partie de la collection d’exemples Figures fractalesLive Mathsdrop

Fichiers


dragon.mp

1.21 KB


dragon.pdf

629.96 KB

Télécharger l’archive complète


dragon.zip

1.13 MB