Projet IHM - Astroide

string art

Objectif : réalisation d'une application de fils tendus numériques

Ce projet repose à la fois sur les paradigmes de programmation objet et événementiel. Vous devez donc vous focaliser sur ces aspects en priorité puisque l'évaluation de votre travail reposera dessus : programmez modulairement, établissez des hierarchies de classes opportunes, respectez les principes ergonomiques, réfléchissez aux interactions possibles, à l'aspect didactique, à l'homogénéité du style graphique, etc. Un fonctionnement parfait de l'application n'est pas demandé.

Le but de ce projet est la conception et la réalisation d'une application de construction de tableaux de fils tendus. Les tableaux de fils tendus sont une activité manuelle et artistique, très en vogue dans les années 70, qui consiste à matérialiser des segments de droites par des fils tendus entre des clous fixés sur un support plan.

En réalité, derrière ces figures géométriques, dans lesquelles des courbes sont suggérées par un ensemble de droites, se dissimule la théorie mathématique des enveloppes de droites.


Cahier des charges

Dans ce projet, on s'attachera à la conception d'un programme basé sur le paradigme objet et d'une interface ergonomique. Une phase de conception préalable, qui repose sur des diagrammes UML de structure (en particulier classes et objets) et de comportement (en particulier "cas d'utilisation") ou sur une conception dirigée par les buts (avec archétypes, scénarios et décomposition associée), est fortement conseillée.

Les fonctionnalités demandées, volontairement approximatives, sont par ordre d'importance décroissante :

  • définition précise de différents supports de clous (segments de droites, polygones fermés, cercles, arcs de cercles, ...),
  • définition interactive ou par commandes d'une grammaire de construction de fils,
  • choix des couleurs et des épaisseurs de fils,
  • aide en ligne si possible contextuelle,
  • modification ou suppression des parties d'un modèle,
  • sauvegarde et chargement de modèles,
  • paramétrage des constituants de l'application.

L'implantation de l'application doit être modulaire, en Python objet, et utiliser la bibliothèque tkinter pour l'interface graphique.


Notation

La notation de ce projet prendra en compte le respect du cahier des charges, la qualité de la programmation (robustesse, lisibilité et modularité du code, présence de tests unitaires) ainsi que les aspects propres à une IHM que sont : cohérence, concision (limitation du nombre d’interventions de l’utilisateur), structuration des activités (décomposition d’une tâche complexe), flexibilité (application personnalisable), retour d’informations et gestion des erreurs, toutes choses qui garantissent une interface ergonomique et intuitive et qui n’apparaissent pas explicitement dans cette présentation.