- Code: Tout sélectionner
TeXgraph#
{version 1.95-beta-10}
Cmd [Fenetre(-2+6*i,2.75+0.08*i,1.66+1.66*i), Marges(0,0,0,0), Border(0)];
[OriginalCoord(1),IdMatrix()];
Var
anglea = 70*deg;
angleb = 80*deg;
anglec = 5*deg;
Mac
branche = {branche(niveau) }
[$n:=%1, $h:=i*0.45,
Color:=MixColor(green,1,brown,n),
{Drectangle(-0.125/8,0.125/8,h),}
Ligne([0,h],0),
if n>0 then
SaveAttr(),
ComposeMatrix( matrix(z*0.35*exp(i*anglea)+h) ),
branche(n-1), {branche gauche}
RestoreAttr(),
SaveAttr(),
ComposeMatrix( matrix(z*0.35*exp(-i*angleb)+h)),
branche(n-1), {branche droite}
RestoreAttr(),
SaveAttr(),
ComposeMatrix( matrix(z*0.85*exp(-i*anglec)+h)),
branche(n-1), {branche centrale}
RestoreAttr()
fi
];
fougere = {fougere( niveau )}
[SaveAttr(), $h:=i, Color:=brown, Width:=4,
for $k from 1 to %1 do
{if Width>1 then Inc(Width,-1) fi,}
Ligne([0,h*1.001],0),
if k<%1 then
SaveAttr(),
Width:=1,
ComposeMatrix( matrix(z*0.75*exp(-i*angleb)+h)),
branche(7), {branche droite}
RestoreAttr(),
SaveAttr(),
Width:=1,
ComposeMatrix( matrix(z*0.75*exp(i*anglea)+h) ),
branche(7), {branche gauche}
RestoreAttr(),
ComposeMatrix( matrix(z*0.85*exp(-i*anglec)+h*0.99))
fi
od,
RestoreAttr(),
];
Cmd [Width:=8,AutoReCalc:=0];
Graph objet1 = [
background(full,beige),
fougere(20)
];
La fougère est dessinée par les macros fougère( niveau) et branche( niveau ).
NB: dans le fichier la fougère est dessinée avec 20 niveaux et 7 niveaux pour les branches, le temps de calcul est assez long, compter une à deux minutes. L'export a été fait en pdf (non compilé).