Objets fractals
Page 1 sur 1
Objets fractals
Cet exemple illustre l'utilisation de la matrice de transformation pour dessiner un arbre fractal:
L'arbre est dessiné par la macro arbre( niveau) , que voici:
NB: cette macro utilise MixColor présent uniquement dans la version 1.94.
Voici le fichier arbreFractale.teg
L'arbre est dessiné par la macro arbre( niveau) , que voici:
- Code:
[$n:=%1,
FillColor:=MixColor(darkgreen,1,brown,n),
Drectangle(0, 0.125, i*1.05),
if n>0 then
SaveAttr(),
ComposeMatrix( matrix(z*0.75*exp(i*anglea)+i) ),
arbre(n-1),
RestoreAttr(),
SaveAttr(),
ComposeMatrix( matrix((z-0.125)*0.75*exp(-i*angleb)+i+0.125)),
arbre(n-1),
RestoreAttr()
fi]
NB: cette macro utilise MixColor présent uniquement dans la version 1.94.
Voici le fichier arbreFractale.teg
Dernière édition par P.Fradin le Jeu 26 Juin - 16:02, édité 1 fois
Re: Objets fractals
Voici un deuxième exemple d'objet fractal: une fougère.
La fougère est dessinée par la macro fougère( niveau) , que voici:
et la macro branche( niveau )
NB: cette macro utilise MixColor présent uniquement dans la version 1.94.
Voici le fichier fougere.teg
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é).
La fougère est dessinée par la macro fougère( niveau) , que voici:
- Code:
[SaveAttr(), $h:=i, Color:=red, Width:=12,
for $k from 1 to %1 do
if Width>1 then Inc(Width,-1) fi,
Ligne([0,h],0),
if k<%1 then
SaveAttr(),
ComposeMatrix( matrix(z*0.75*exp(-i*angleb)+h)),
branche(7), {branche droite}
RestoreAttr(),
SaveAttr(),
ComposeMatrix( matrix(z*0.75*exp(i*anglea)+h) ),
branche(7), {branche gauche}
RestoreAttr(),
ComposeMatrix( matrix(z*0.85*exp(-i*anglec)+h))
fi
od,
RestoreAttr()]
et la macro branche( niveau )
- Code:
[$n:=%1, $h:=i*0.5,
Color:=MixColor(green,1,red,n),
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]
NB: cette macro utilise MixColor présent uniquement dans la version 1.94.
Voici le fichier fougere.teg
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é).
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|