.. _chap-tpTreemaps: ################################################################################ Travaux pratiques - *Treemaps* ################################################################################ Références externes utiles : * `Téléchargement et documentation Processing `_ Les *Treemaps* ont été inventés par B. Schneiderman (Université du Maryland) en 1991. Il s'agit d'une technique de visualisation de grandes arborescences (systèmes de fichiers, taxonomies, etc.). Depuis ce premier travail, de nombreux perfectionnements ont été apportés et cette méthode se diffuse progressivement dans l'industrie (du Web, en particulier). Exercice 1 - Premier exemple ======================================== Produire le treemap de l'arbre suivant : .. image:: figures/tree.png :width: 60 % :alt: Arbre :align: center Exercice 2 - Génération aléatoire d'arbre ============================================= Quelles structures de données sont utiles pour générer aléatoirement un arbre ? Quelles sont les informations à produire pour le dessin du *treemap* ? Donner un algorithme qui produit ces information pour tous les sommets de l'arbre. .. ifconfig:: tpscala in ('public') .. admonition:: Correction Les programmes solutions pour ce TP se trouvent `ici `_. Exercice 3 - Algorithme de subdivision en largeur ================================================== On suppose résolu l'ex. précédent. Ecrire un premier programme Processing de dessin du *treemap*, où seule la largeur du rectangle du sommet père est partagée pour les sommets fils. On fixera un espacement constant entre les rectangles : .. image:: figures/treeMap1.png :width: 60 % :alt: Treemap 1 :align: center .. ifconfig:: tpscala in ('public') .. admonition:: Correction Les programmes solutions pour ce TP se trouvent `ici `_. Exercice 4 - Subdivision en largeur et hauteur alternées (*"slice and dice"*) =============================================================================== Modifier le programme précédent our que la subdivision alterne partage de la largeur puis partage de la hauteur. C'est l'algorithme de départ de B. Schneiderman. .. image:: figures/treeMap2.png :width: 60 % :alt: Treemap 2 :align: center .. ifconfig:: tpscala in ('public') .. admonition:: Correction Les programmes solutions pour ce TP se trouvent `ici `_. Exercice 5 - Coloriage du *treemap* ===================================== En général, les couleurs des cases du *treemap* dépendent d'informations associées aux sommets de l'arbre. Proposer une technique générique de coloriage.