15
Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1 Visualisation de graphes avec Qt Etudiant: Lucas Wenger Professeur: David Grunenwald Module: Projet d’approfondissement Date: 16 juin 2010

Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Embed Size (px)

Citation preview

Page 1: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Visualisation de graphes avec QtProjet d’approfondissementMaster HES-SO 2009/2010

1Visualisation de graphes avec Qt

Etudiant: Lucas WengerProfesseur: David GrunenwaldModule: Projet d’approfondissementDate: 16 juin 2010

Page 2: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Sommaire

• Introduction• Graphics View Framework• GraphViz• Attributs gérés• Actions possibles• Architecture• Résultats obtenus• Problèmes rencontrés• Conclusion• Questions

Visualisation de graphes avec Qt 2

Page 3: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Introduction (1)

• But du projet– Visualisation de graphes avec Qt• Layout automatique• Interaction• Sauvegarde / exportation

– Librairie à disposition de la communauté Qt• Technologies– Qt avec le Graphics View Framework– GraphViz

Visualisation de graphes avec Qt 3

Page 4: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Introduction (2)

• Graphe– Définition– Orienté / non orienté

Visualisation de graphes avec Qt 4

Page 5: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Graphics View Framework

• Surface pour gérer et dessiner des objets 2D• Eléments– Scène– Vue(s)– Objets

• Interaction facilitée– Zoom– Drag-and-drop

• Depuis Qt 4.2 (2006)Visualisation de graphes avec Qt 5

Page 6: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

GraphViz (1)

• Logiciel de visualisation de graphes• Open source• Algorithmes de layout– Dot– Neato– Autres…

• Langage DOT• Librairie C++

Visualisation de graphes avec Qt 6

Page 7: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Visualisation de graphes avec Qt 7

GraphViz (2)

• Dot– Graphes dirigés– Structure hiérarchique

• Neato– Graphes non dirigés– Structure en réseau

Page 8: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

GraphViz (3)

• Langage DOT

Visualisation de graphes avec Qt 8

Page 9: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Attributs gérés

• Graphe– Nom– Dirigé ou non

• Arête– Nœud source– Nœud destination– Dirigée ou non

• Nœud– Nom– Couleur de fond– Label– Forme (ellipse ou

rectangle)– Largeur– Hauteur– Position (x,y)

Visualisation de graphes avec Qt 9

Page 10: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Actions possibles

• Graphe– Ouvrir un graphe (.dot)– Enregistrer un graphe– Exporter un graphe– Imprimer un graphe– Reset du layout du graphe

• Arête– Créer et ajouter des

arêtes entre 2 nœuds– Supprimer des arêtes

• Nœud– Créer et ajouter des

nouveaux nœuds – Sélectionner des nœuds – Déplacer des nœuds– Supprimer des nœuds– Modifier les propriétés

des nœuds

Visualisation de graphes avec Qt 10

Page 11: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Architecture

• Diagramme de classes

Visualisation de graphes avec Qt 11

cd GVQt_lib

QGraphicsLineItem

Edge

EllipseNode

QGraphicsScene

GraphScene

QGraphicsView

GraphView

QGraphicsItem

Node

RectNode

1

0..*

0..* 2

1

0..*

Page 12: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Résultats obtenus

• Librairie OK• Application de démonstration OK

Visualisation de graphes avec Qt 12

Page 13: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Problèmes rencontrés

• Arêtes– Rendu– Sélection– Sens

• Zoom• Sauvegarde des positions• Reset du layout• Noms des nouveaux nœuds

Visualisation de graphes avec Qt 13

Page 14: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Conclusion

• Résultat satisfaisant• Librairie clairement séparée, extensible• Application de démonstration utile• Problèmes restants• A disposition– Wiki– Doxygen– SVN

• Temps limiteVisualisation de graphes avec Qt 14

Page 15: Visualisation de graphes avec Qt Projet d’approfondissement Master HES-SO 2009/2010 1Visualisation de graphes avec Qt Etudiant:Lucas Wenger Professeur:

Questions

Visualisation de graphes avec Qt 15