Infographie 2D - Projet

sam. 16 septembre 2017

Animation de flocons de neige

L'objectif de ce projet est de développer une petite application 2D simulant la chute de quelques flocons de neige, représentés schématiquement, à partir des notions vues en cours/TD et des modules écrits en TP.


Cahier des charges

L'application simule la chute de quelques flocons de neige. Les flocons seront représentés schématiquement à l'aide de segments tracés grâce à l'algorithme de Bresenham (voir figures ci-dessous). La chute sera calculée le long d'une trajectoire qui doit avoir la forme d'une courbe de Bézier. Diverses options peuvent agrémenter le projet : trajectoires des courbes définies par morceaux, couleurs multiples, rotation des flocons pendant leur chute, agrandissement / réduction des flocons simulant la distance les séparant de l'observateur, etc.

Au lancement du programme, celui-ci doit demander le nombre de flocons et leur associer des vitesses de chute légèrement différentes.

Représentation des flocons : vous pouvez vous inspirer des modèles ci-dessous, ou en créer d'autres.

flocons

Position initiale : à la première génération, chaque flocon doit avoir une position initiale en haut de l'écran mais à un instant défini aléatoirement. En effet, les flocons ne doivent pas tous atteindre le bas de l'écran en même temps pour des raisons à la fois esthétique et réaliste. Par la suite, les générations suivantes de chaque flocon conserveront l'aspect aléatoire de leur instant d'apparition, leur ordonnée correspondant toujours au haut de l'écran.

Trajectoire de chute : celle-ci doit suivre une courbe de Bézier comportant 4 points de contrôle dont le premier est bien entendu confondu avec le centre de masse de chaque flocon lors de son apparition en haut de l'écran. Le dernier point doit avoir une ordonnée confondue avec le bas de l'écran. Les positions des deux points intermédiaires doivent normalement être choisies aléatoirement de part et d'autre de la verticale du premier point (choisissez avec soin leur amplitude).

Couleurs : celles-ci doivent être choisies dans les tons froids (i.e bleu, vert, blanc), on ne veut pas représenter un feu d'artifice.

Rotation : celle-ci se fait autour du centre de masse de chaque flocon, il faut donc implanter la rotation d'un objet autour d'un point quelconque.

Agrandissement / réduction : ces deux opérations correspondent à l'application d'une homothétie de centre le centre de masse de chaque flocon, il faut donc implanter l'homothétie d'un objet par rapport à un point quelconque.


Implantation

Algorithmes : le tracé de segments de Bresenham ainsi que le tracé de courbes de Bézier doivent respecter les algorithmes étudiés en cours et en TD et implantés en TP. Tout plagiat sera sanctionné de la note 0.


Evaluation

Il est impératif que vous suiviez à la lettre les consignes qui suivent.

Ce projet doit être constitué de modules, comportant chacun une section de tests unitaires. Chaque fichier doit avoir un nom significatif, et contenir le nom de son auteur ainsi que la documentation du module. Le fichier principal contiendra, pour sa part, toutes les informations nécessaires à l'utilisation du programme final.

Les droits des fichiers seront choisis de tel sorte que les correcteurs puissent prendre connaissance de leur contenu. L'ensemble des fichiers sera rassemblé dans une archive ("tar file") au nom de l'étudiant et copiée dans le répertoire /home/partage/D23/2018.

La non observation de ces consignes simples sera systématiquement sanctionnée par des malus cumulatifs appliqués à la note finale. La notation de ce projet prendra en compte : le respect du cahier des charges, l'efficacité des fonctions graphiques, la présence d'options, ainsi que la robustesse, la lisibilité et la modularité de votre code.