Next: antialiasing Up: Affichage Previous: new_printer

affichage graphique

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.


fdurand@clipper.ens.fr, fleuret@clipper.ens.fr
Thu Jun 9 18:32:25 MET DST 1994