Description des fonctionnalités

Dans le cadre de ce projet d'Unix, nous avons entrepris la réalisation en c++ d'un logiciel qui manipule les L-systèmes, en les faisant évoluer dans un environnement 3D, à l'aide de threads. Nous avons nommé ce programme : LsysTemThreading.

Nous avons de plus choisi d'utiliser la bibliothèque graphique Qt 3.3 pour réaliser l'interface graphique du programme. Cette librairie est très utilisée et très complète dans la gestion de fenêtres sous linux, mac OS et Windows.

Figure 4.1: Aperçu du logiciel LsysTemThreading
Image Capture-LsysTemThreading

L'environnement graphique où évoluent les L-systèmes est un environnement OpenGL, qui permet de visualiser rapidement et efficacement en 3D les différentes plantes, et ce, en temps réel.

Différents sliders ont été de plus ajoutés afin de naviguer à l'intérieur de la fenêtre OpenGL (translations x,y,z, rotations suivant x,y et z.).

Afin de contrôler l'évolution physique (la pousse) des plantes, trois boutons sont présents. Les boutons "start" et "stop" permettent respectivement de lancer et d'arrêter la pousse de l'ensemble des L-systems de l'environnement. Le bouton supplémentaire "reset" permet quant à lui une remise à zéro de toutes les plantes, elles redeviennent par conséquent de jeunes pousses de "longueur" nulle.

L'ajout et l'édition d'un L-system s'effectue à l'aide d'une boîte de dialogue.

Figure 4.2: Édition et création d'un L-system
Image add

Cette boîte de dialogue permet de définir les paramètres des L-systems suivants :

Après avoir testé plusieurs fois notre logiciel, nous nous sommes dits qu'il serait intéressant de pouvoir enregistrer les pousses à différents stades d'évolution des plantes. Nous avons ainsi ajouté deux fonctionnalités au programme :

Enfin, le logiciel possède un système de sauvegarde de l'environnement et de tous les L-systems créés. Un fichier d'extension ".lsy" contient donc tous les paramètres des L-systems et peut être édité et modifié aisément sous n'importe quel éditeur de texte.

julien michot 2006-08-05