Jeu Noël 2022 – Découvrez le programme hors concours de Xavier Andréani
Xavier Andréani, fondateur de TI-Planet, a participé à notre concours de programmation de Noël 2022.
Même si cette dernière ne rentrait pas dans le cadre du concours, nous avons souhaité la partager avec vous !
Découvrez ci-dessous sa participation ainsi que quelques informations sur la création de son programme et sur son site TI-Planet.
Pouvez-vous nous présenter votre programme ?
J’ai codé mon programme en langage Python pour CASIO Graph 90+E.
L’an dernier j’avais proposé une scène animée. Cette année j’ai conservé la même idée mais en rajoutant la 3D.
La scène est en perspective et le programme amène l’utilisateur réveillonner au chalet en plein milieu d’une forêt de sapins enneigée.
Le chalet a été décoré pour l’occasion : guirlandes, sapin de Noël, fleurs … La table est dressée et prête à accueillir ses 8 convives pour le repas du réveillon !
Vous avez codé un moteur 3D spécialement pour cette animation, pouvez-vous nous en dire plus ?
Un moteur 3D est un outil logiciel permettant de dessiner sur écran des scènes en 3 dimensions. C’est utilisé notamment par les concepteurs de jeux vidéos, architectes, cinéastes etc. Il existe beaucoup de techniques pour coder en 3D (parallaxe, mode 7, ray casting, ray tracing, voxélisation).
Pour ce concours, j’ai choisi une autre technique : celle du point de fuite.
Pour expliquer rapidement ce qu’est le point de fuite : plaçons-nous dans une scène urbaine, nous pouvons y noter nombre de lignes parallèles.
Mais sur une photo de cette scène ces mêmes lignes sembleront converger vers un même point, c’est leur point de fuite.
L’idée a été d’inverser ce processus pour arriver à créer un dessin avec une illusion réaliste de perspective.
Cette technique est assez simple à mettre en place et permet de respecter la limite de 300 lignes pour que le fichier soit consultable et modifiable directement sur la calculatrice Graph 90+E.
Quelles sont les étapes à suivre pour réaliser un programme tel que le vôtre ?
Avant de commencer, il s’agit d’un projet Python graphique donc j’ai dû faire appel à la bibliothèque Python graphique intégrée de la Graph 90+E qui s’appelle casioplot.
Pour bien commencer dans sa réflexion il s’agit de comprendre que casioplot permet de colorier un pixel et d’afficher du texte.
Dans un premier temps, il faut étendre la bibliothèque avec les fonctions de tracé de formes suivantes :
- Segments (ex : pour les barreaux des fenêtres)
- Trapèzes (murs en perspectives)
- Ellipses (assiettes en perspective)
- Images (utilisation d’un convertisseur d’image)
Ensuite, je suis parti du principe que le chalet est la clef de voûte de tout le programme :
- Etape 1 : je fais glisser un rectangle en partant de la face avant du chalet selon ses lignes de fuite
- Etape 2 : Au cours de ce déplacement, je récupère les positions du rectangle intermédiaire correspondant à certains niveaux de profondeur (et donc certains plans)
- Etape 3 : J’effectue le chemin inverse sur ces positions (de l’arrière-plan au premier plan)
- Etape 4 : À chaque étape, je calcule et affiche les éléments associés, à l’intérieur du rectangle du chalet (table et ce qu’il y a dessus, sapin de Noël, lustre) ou à l’extérieur (rangées d’arbres)
Combien de temps à nécessité la création de cette animation ?
J’ai travaillé sur ce projet de décembre à mi-janvier, un petit peu chaque jour. En prenant en compte toutes les étapes de conception (recherche d’idées, recherche d’images, retouche des images et codage), je pense que ça m’a pris une trentaine d’heure.
Avez-vous des astuces à donner à quelqu’un qui souhaiterait se lancer dans la création d’un programme en 3D tel que le vôtre ?
Pour programmer un projet graphique de ce genre, il faut selon moi :
Dans un premier temps, bien prendre connaissance des possibilités de casioplot pour évaluer les éventuelles fonctions graphiques à rajouter.
Ensuite, on peut aussi éventuellement rechercher si des extensions adéquates sont disponibles.
Si cette étape est faite minutieusement, la suite est un vrai plaisir.
Aussi, je pense qu’il ne faut pas hésiter à chercher des idées ou conseils auprès de ses camarades/collègues, professeurs de Mathématiques et NSI, ou encore sur TI-Planet et Planète Casio.
Une fois votre projet terminé, n’hésitez pas à le partager sur TI-Planet et Planète Casio, nous aurons grand plaisir à le mettre en avant !
Pouvez-vous nous présenter votre site TI-Planet ?
J’ai cofondé le site TI-Planet en 2011 avec des enseignants et des étudiants (qui sont devenus ingénieurs aujourd’hui).
Depuis 2013, nous sommes une association à but non lucratif.
À l’époque, nous ressentions tous un formidable besoin autour des calculatrices. L’ensemble des lycéens et lycéennes achetaient une calculatrice graphique à l’entrée en seconde mais j’avais constaté que peu l’exploitaient vraiment.
Les nouveaux programmes de lycée commençaient aussi à intégrer des notions d’algorithmique mais les élèves étaient souvent laissés seuls pour prendre en main leur calculatrice.
Les objectifs de TI-Planet sont donc :
- D’informer et de documenter (nouveaux modèles de calculatrices, mises à jour …)
- D’apporter une aide dans l’utilisation des calculatrices (fonctionnalités, résolution de problèmes)
- De promouvoir la programmation (tutoriels, création de programmes de jeux, organisation de concours et mise en avant des créations d’utilisateurs etc)
Nous ciblons toutes les parties prenantes intéressées par les calculatrices : élèves, professeurs, développeurs et collectionneurs de calculatrices.
Depuis le lancement de TI-Planet, nous faisons aussi en sorte de traiter l’ensemble des marques de calculatrices pour que tous les utilisateurs puissent trouver une aide.