Cfdg permet de faire varier la transparence, la teinte et la luminosité à chaque étape. Cela peut être très utile pour améliorer l'esthétique du rendu.
On part d'un carré.
startshape dragon
rule dragon{
SQUARE{ }
}
On rajoute deux carrés à chaque étape
startshape dragon
rule dragon{
SQUARE{ }
SQUARE[s 0.707 r 45 x -0.5 y 0.5 ]
SQUARE[s 0.707 r 45 x 0.5 y -0.5 ]
}
On crée un processus récursif basé sur ce motif.
startshape dragon
background{b -1}
rule dragon{
SQUARE{ b 1 sat 0.8 h 45}
dragon[s 0.707 r 45 x -0.5 y 0.5 ]
dragon[s 0.707 r 45 x 0.5 y -0.5 ]
}Le dessin obtenu n'est pas très joli. On va essayer de l'améliorer.
startshape dragon
background{b -1}
rule dragon{
dra{a -1 h 45 sat 0.8 }
}
rule dra{
SQUARE{ }
dra[s 0.707 r 45 x -0.5 y 0.5 a 0.1 b 0.13 ]
dra[s 0.707 r 45 x 0.5 y -0.5 a 0.1 b 0.13 ]
}Le code ci-dessus donne aux carrés dessinés en premier une transparence totale a -1 et une luminosité nulle b 0 . À chaque étape, la transparence diminue a 0.1 et la luminosité augmente b 0.13; finalement on voit surtout les carrés dessinés en dernier.
L'image finale a été obtenue avec le code suivant ( option carré de 1000 pixels) et redécoupé avec Gimp.
startshape dragon
background{b -1}
rule dragon{
dra{a -1 h 45 sat 0.8 b 0}
dra{a -1 h 12 sat 0.8 b 0 x 2 y 0}
dra{a -1 h 12 sat 0.8 b 0 x 0 y 1}
dra{a -1 h 60 sat 0 b 0 x 2 y 1}
dra{a -1 h 60 sat 0 b 0 x 0 y 2}
dra{a -1 h 45 sat 0.8 b 0 x 2 y 2}
dra{a -1 h 45 sat 0 b 0 x 4 y 0}
dra{a -1 h 45 sat 0.8 b 0 x 4 y 1}
dra{a -1 h 13 sat 0.8 b 0 x 4 y 2}
}
rule dra{
SQUARE{ }
dra[s 0.707 r 45 x -0.5 y 0.5 a 0.1 b 0.13 ]
dra[s 0.707 r 45 x 0.5 y -0.5 a 0.1 b 0.13 ]
}fait le 12 et 13 novembre 2008