Application graphique permettant de créer, visualiser et analyser des graphes orientés et non orientés, avec implémentation des principaux algorithmes de la théorie des graphes.
- Ajout de sommets par clic sur le canvas
- Ajout d'arêtes orientées (avec flèches directionnelles)
- Ajout d'arêtes non orientées
- Gestion multi-onglets (plusieurs graphes simultanés)
- Étiquetage automatique des arêtes (A1, A2, ...)
- Nouveau graphe dans un onglet dédié
- Ouvrir un graphe depuis un fichier
.py - Enregistrer / Enregistrer sous au format
.py - Fermer un onglet sans affecter les autres
| Matrice | Description |
|---|---|
| Matrice d'Adjacence | Représentation des connexions entre sommets |
| Matrice d'Incidence | Représentation des relations sommets-arêtes |
| Algorithme | Description |
|---|---|
| Chaîne Hamiltonienne | Parcours passant par chaque sommet exactement une fois |
| Chaîne Eulérienne | Parcours empruntant chaque arête exactement une fois (Algorithme de Fleury) |
| Parcours en Largeur (BFS) | Exploration niveau par niveau avec arbre couvrant |
| Dijkstra | Plus court chemin entre deux sommets avec poids sur les arêtes |
| Trouver Chemins | Tous les chemins possibles entre deux sommets donnés |
- Python 3.8 ou supérieur
- Tkinter (inclus avec Python sur Windows et macOS)
⚠️ Linux uniquement — Tkinter doit parfois être installé séparément :# Ubuntu / Debian sudo apt-get install python3-tk # Fedora sudo dnf install python3-tkinter
git clone https://github.com/fatouu50/MonAppTkinter.git
cd MonAppTkinter# Sur Windows
python -m venv venv
.\venv\Scripts\activate
# Sur macOS / Linux
python3 -m venv venv
source venv/bin/activate# Aucune installation requise — uniquement la bibliothèque standard Python
python -c "import tkinter; print('Tkinter OK')"python main.pyMonAppTkinter/
├── main.py # Application principale
├── requirements.txt # Dépendances (stdlib uniquement)
└── README.md # Documentation
- Fichier → Nouveau pour ouvrir un onglet vide
- Création → Graphe → Sommet puis cliquer sur le canvas pour placer des sommets
- Création → Graphe → Arête → Orientée (ou Non-orientée), puis cliquer sur deux sommets pour les relier
⚠️ Un onglet ne peut pas contenir à la fois des arêtes orientées et non orientées.
- Créer ou ouvrir un graphe
- Exécution → Algorithme de Dijkstra (saisir les poids dans la fenêtre qui s'ouvre)
- Affichage → Chaînes → Hamiltonienne ou Eulérienne
- Exécution → Parcours en largeur pour visualiser l'arbre couvrant
- Fichier → Enregistrer sous → choisir un emplacement
.py - Le fichier peut être rouvert avec Fichier → Ouvrir
Les graphes sont sauvegardés en Python natif, ce qui les rend lisibles et modifiables à la main :
sommets = [(150, 200), (300, 100), (450, 200)]
aretes = [(0, 1, False), (1, 2, True), (0, 2, False)]Chaque arête est un tuple (sommet_départ, sommet_arrivée, orientée).
- La détection de proximité des sommets utilise un seuil fixe de 20px
- L'algorithme de Dijkstra commence toujours depuis le sommet 1
- L'affichage de l'arbre couvrant utilise des positions prédéfinies pour les grands graphes
Built with 🐍 Python & Tkinter