fractal suivant fractal précédent courbes 2D courbes 3D surfaces fractals polyèdres

COURBES DU TERDRAGON et des LÉPIDOPTÈRES, TERDRAGON et TERPAPILLON
Terdragon and lepidopter curves, terdragon and terbutterfly



Courbe du terdragon

Courbe des lépidoptères


 
Courbe du terdragon et terdragon étudiés par Knuth et Chandler en 1970.
Nom formé par abréviation de "ternary dragon", soit dragon ternaire (car formé de 3 copies de lui-même).
Voir : larryriddle.agnesscott.org/ifs/heighway/terdragon.htm
Courbe des lépidoptères et terpapillon étudiés par Giorgio Pietrocola en 2024.
Wikipedia : papillon de nuit (fractale), terpapilllon

 
Codes maple de la courbe du terdragon et de celle des lépidoptères : m:=2*sqrt(3):
cterdragon:=proc(A,B,n) 
if n=0 then [A,B] else C:=(A+B)/2+I*(B-A)/m: 
cterdragon(A,C,n-1), 
cterdragon(B,C,n-1)  fi end:
plot(map(X ->map(z ->[Re(z),Im(z)],X),[cterdragon(0,1,8)]),axes=none,scaling=constrained);
m:=2*sqrt(3.):
lepi:=proc(A,B,n,e)
 if n=0 then [A,B] else C:=(A+B)/2+e*I*(B-A)/m: 
 lepi(A,C,n-1,-e), 
 lepi(B,C,n-1,-e) fi end: 
plot(map(X ->map(z ->[Re(z),Im(z)],X),[lepi(0,1,8,1)]),axes=none,scaling=constrained);

La courbe du terdragon est une variante de la courbe du dragon, obtenue en modifiant l'angle central ; la courbe des lépidoptères est une variante de cette dernière, et aussi une variante du balayage triangulaire de Polya, obtenue en modifiant de la même façon l'angle central.
 
Étant donné un triangle ABC, isocèle d'angle 120° en C (90° pour le dragon normal), la courbe du terdragon est l'attracteur dans le plan des deux similitudes directes transformant (A,B) en (A,C) et (B,C) respectivement ; ces deux similitudes étant de rapport , la dimension fractale de la courbe du terdragon est  (comme pour la courbe de Koch).
D'ailleurs, si on remplace la deuxième similitude par celle transformant (A,B) en (C,B), on tombe sur la courbe de Koch elle-même.
Loi en tant que L-système, + signifiant "tourner de 30° vers la gauche".
La courbe des lépidoptères est l'attracteur dans le plan de deux similitudes indirectes, transformant (A,B) en (A,C) et  (B,C) rspectivement ;  ces deux similitudes étant de rapport , la dimension fractale est également.

En partant de [AB], voici la suite des compacts convergeant vers ces deux courbes donnant des courbes continues sans point double approchant la courbe limite.
 
étape 1 vers 2
2 vers 3
3 vers 4
4 vers 5

 
Vue de la courbe du terdragon juxtaposée à sa symétrique par rapport à la base.

Au milieu, version plus élégante pivotée d'un angle droit et réduite.

À droite courbe du terdragon juxtaposée à sa pivotée de 180° formant la frontière du terdragon (voir ci-dessous).


 
Vue de la courbe des lépidoptères juxtaposée à sa symétrique par rapport à la base.

Au milieu, version plus élégante pivotée d'un angle droit, baptisée papillon de nuit.

À droite, courbe des lépidoptères juxtaposée à sa pivotée de 180°, formant la frontière du terpapillon.


Terdragon, étape 8                                                     Terpapillon, étape 8


Codes maple du terdragon et du terpapillon : m:=2*sqrt(3):
terdragon:=proc(A,B,n) 
if n=0 then [A,B] else C,D:=(A+B)/2+I*(B-A)/m,(A+B)/2-I*(B-A)/m:
terdragon(A,C, n-1), 
terdragon(C ,D, n-1),
terdragon(D, B, n-1)  fi end:
plot(map(X ->map(z ->[Re(z),Im(z)],X),[terdragon(0,1,8)]),scaling=constrained);
m:=2*sqrt(3):
terpapillon:=proc(A,B,n,e) 
if n=0 then [A,B] else C,D:=(A+B)/2+e*I*(B-A)/m,(A+B)/2-e*I*(B-A)/m: 
terpapillon(A,C,n-1,-e), 
terpapillon(C,D,n-1,-e),
terpapillon(D,B,n-1,-e)  fi end:
plot(map(X ->map(z ->[Re(z),Im(z)],X),[terpapillon(0,1,7,1)]),axes=none,color=red,scaling=constrained);
Autre méthode : terdrag:=proc(n)
if n=0 then [1] else L:=terdrag(n-1):
L1:= map(z->exp(I*Pi/6)*z,L):p:=nops(L):
V:=L1[p]:L2:=map(z-> expand(-z*I+V),L):
V:=L2[p]:L3:=map(z-> z+V,L1):
 [0,op( L1),op( L2),op( L3)]  :
fi : end:
complexplot(terdrag(10),scaling=constrained); 
terpap:=proc(n)
if n=0 then [1] else  L:=terpap(n-1): 
L1:= map(z->exp(I*Pi/6)*conjugate(z)/sqrt(3),L):p:=nops(L): 
V:=L1[p]:L2:=map(z-> expand(-conjugate(z)*I/sqrt(3)+V),L): 
V:=L2[p]:L3:=map(z-> z+V,L1):
[0,op( L1),op( L2),op( L3)]  :
fi : end:
complexplot(terpap(10),scaling=constrained); 

 
Étant donné une ligne brisée ACDB d'angles successifs de 60°, le terdragon est l'attracteur dans le plan des trois similitudes directes transformant respectivement (A,B) en (A,C), (A,B) en (C,D) et (A,B) en (D,B) ; ces trois similitudes étant de rapport , la dimension fractale du terdragon est  (c'est donc une courbe remplissante).
C'est un L-système à trois barres de même longueur.

Loi en tant que L-système
+ signifiant "tourner de 30° vers la gauche".

Image illustrant les 3 similitudes internes
Le terpapillon est, lui, l'attracteur dans le plan des trois similitudes indirectes transformant (A,B) en (A,C), (C,D), et (D,B) respectivement ; ces trois similitudes étant aussi de rapport , la dimension fractale du terpapillon est également 2.

Image illustrant les 3 similitudes internes


 

Terdragon arrondi, par Alain Esculier.

 

Terpapillon arrondi par Alain Esculier.

Six terdragons tournés de 60° en 60° forment un superbe pavage.

Voir aussi la courbe du dragon d'or.
 
fractal suivant fractal précédent courbes 2D courbes 3D surfaces fractals polyèdres

© Robert FERRÉOL 2026