C1.3 : TP Immeubles
Présentation du TP
But
On souhaite écrire un programme qui crée une image contenant le dessin d’une rue avec des immeubles générés aléatoirement.
Contraintes
L'image générée doit avoir la taille de 800×600 pixels.
Les contraintes urbanistiques concernant les immeubles sont les suivantes :
- - les immeubles ont au minimum un rez-de-chaussée et au maximum 4 étages (5 niveaux) ;
- - les immeubles ont une largeur de 140 pixels ;
- - les immeubles ont la même couleur pour tous les niveaux (rez-de-chaussée et étages) ;
- - chaque niveau (rez-de-chaussée ou étage) a une hauteur de 60 pixels ;
- - les rez-de-chaussée n'ont qu'une seule porte ;
- - toutes les fenêtres sont identiques, de taille 30 pixels sur 30 pixels ;
- - toutes les portes et portes-fenêtres ont une largeur de 30 pixels ;
Tout le reste est libre et peut donc être personnalisé.
Travail à faire
Approche globale
Proposer un module et un programme qui utilise les fonctions du module pour répondre au problème posé.
On utilisera le module PIL de Python.
On utilisera le plus de petites fonctions possible. On veillera à bien documenter le module et les fonctions du module.
Quelques pistes
Voir avec le professeur.
Exemple
La série d'exemples ci-dessous est basée sur :
- - une couleur aléatoire unique pour tous les niveaux (rez-de-chaussée et étages) d'un même immeuble ;
- - deux modèles de toits ;
- - deux modèles de portes avec une couleur aléatoire ;
- - deux modèles d'ouvertures pour les étages : fenêtre ou porte-fenêtre avec balcon ;
- - trois éléments horizontalement pour chaque niveau.
Quelques liens
Documentation officielle de la librairie PIL : pillow.readthedocs.io/en/stable/