Une procédure d'affichage graphique a par ailleurs été
développée. Programmée de manière récursive, elle
se contente de parcourir l'arbre en profondeur en s'arrêtant à
un niveau déterminé, en général la taille d'un pixel
(point affiché à l'écran), et dans un premier temps on
choisit de ne rien afficher dans ce cas. Seuls sont donc visibles les
carrés noirs plus grands qu'un pixel.
let rec affichage mini x y l = function (* mini : limite de recursion*)
(Color Noir)-> fill_rect x y l l
| (Color Blanc) -> ()
| i -> if l>mini
then match (fils i) with
[c1; c2; c3; c4]->
let l2=l/2 in
affichage mini x (y+l2) l2 c1;
affichage mini (x+l2) (y+l2) l2 c2;
affichage mini (x+l2) y l2 c3;
affichage mini x y l2 c4;;
La procédure effectivement utilisée est un peu plus
compliquée, puisqu'elle gère la possibilité d'une taille
d'image qui ne soit pas une puissance de 2, ce qui peut entra^ner que tous
les fils d'une variable n'aient pas exactement la même taille ( et , de ce fait les
dimensions verticales et horizontales ne sont plus forcément les
mêmes, mais tout cela ne complique pas beaucoup le programme.
Cependant l'affichage dans des fenêtres dont la taille n'est pas une puissance de 2 présente une bien moindre qualité, en raison de la nature même des images.