From 6f7ef0a33c4e870a4519d5c7948dd633c42007a2 Mon Sep 17 00:00:00 2001 From: Quentin Legot Date: Tue, 30 Mar 2021 17:37:40 +0200 Subject: [PATCH 1/2] Fix button gif not disappear --- src/lsystem/screen/gl3d/DrawHelper.java | 11 ++++++----- src/lsystem/screen/main/Listener.java | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lsystem/screen/gl3d/DrawHelper.java b/src/lsystem/screen/gl3d/DrawHelper.java index fa22d94..71c1bc0 100644 --- a/src/lsystem/screen/gl3d/DrawHelper.java +++ b/src/lsystem/screen/gl3d/DrawHelper.java @@ -27,12 +27,13 @@ public class DrawHelper { gl.glVertex3f(0f, 0f, 1f); gl.glColor3f(255f, 255f, 255f); - for (int i = -20; i < 21; i++) { - gl.glVertex3f(-20f, 0f, i); - gl.glVertex3f(20f, 0f, i); + int limit = 20; + for (int i = -limit; i < limit + 1; i++) { + gl.glVertex3f(-limit, 0f, i); + gl.glVertex3f(limit, 0f, i); - gl.glVertex3f(i, 0, -20f); - gl.glVertex3f(i, 0, 20f); + gl.glVertex3f(i, 0, -limit); + gl.glVertex3f(i, 0, limit); } gl.glEnd(); gl.glRasterPos3f(1.1f, 0.0f, 0.0f); diff --git a/src/lsystem/screen/main/Listener.java b/src/lsystem/screen/main/Listener.java index ec17441..9b02dc6 100644 --- a/src/lsystem/screen/main/Listener.java +++ b/src/lsystem/screen/main/Listener.java @@ -106,8 +106,8 @@ public class Listener implements ActionListener, KeyListener, MouseWheelListener } else if (!parser3D.isCorrect()) { openDialog("Vos règles ou votre axiome ne sont pas correctement écrites, veuillez recommencer"); } else { - tab.submitButton2D.setIcon(staticIcon); - tab.submitButton2D.setText(""); + tab.submitButton3D.setIcon(staticIcon); + tab.submitButton3D.setText(""); parserThread = new Thread(() -> { try { List> lSystemRules = parser3D.parseRules(); From 1d7ddea1af1098a613452fff864285d8aa1dc944 Mon Sep 17 00:00:00 2001 From: Eideen Date: Tue, 30 Mar 2021 18:05:16 +0200 Subject: [PATCH 2/2] improved LaTeX file --- rapport/rapport.tex | 92 +++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 49 deletions(-) diff --git a/rapport/rapport.tex b/rapport/rapport.tex index ff32890..fb7edbf 100644 --- a/rapport/rapport.tex +++ b/rapport/rapport.tex @@ -1,12 +1,15 @@ -\documentclass[12pt]{article} +\documentclass[12pt]{report} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} \usepackage{hyperref} \usepackage{graphicx} -\title{Conception Logicielle - L-système} -\author{Antonin Boyon, Thomas Lalong, Quentin Legot, Arthur Page} +\title{CONCEPTION LOGICIELLE\\L-SYSTEME} +\author{Antonin \bsc{Boyon}\\ +Thomas \bsc{Lalong}\\ +Quentin \bsc{Legot}\\ +Arthur \bsc{Page}} \date{\today} \begin{document} @@ -14,61 +17,52 @@ \maketitle \thispagestyle{empty} \setcounter{page}{0} -\newpage \tableofcontents \newpage -\section{Introduction} -\subsection{} -Le but de notre projet était de concevoir un générateur de flores vidéo-ludiques. Ce genre de logiciel à pour but de créer de manière procédurale des modèles végétaux qui pourront notamment être utilisés dans les jeux vidéos. Nous devions pour cela nous baser sur un L-système \ref{l-system}, un parser \ref{parser}, un moteur de réécriture\ref{rw-engine} et un moteur graphique\ref{g-engine}. Le rôle de ses différents éléments sera expliqué dans les sections suivantes. +\chapter{INTRODUCTION} +\newpage +\section{Sujet et consignes} +\paragraph{} +Ce projet a pour objectif de réaliser une application appliquant des principes de programmation orientée objet en language de programmation Java. +Nous avons eut le choix entre 6 sujets différents et, après études des propositions, notre choix s'est finalement porté sur le "Générateurs de flores vidéos-ludiques" et donc la réalisation d'un simulateur de L-système végétal produisant une image 2D et 3D de l'objet par le biais de règles de réécritures. - -\section{Le logiciel} -\subsection{Organigramme} -%inclure à la fin quand le logiciel sera terminé - -\subsection{Le l-system} -\label{l-system} -\subsubsection{Qu'est-ce qu'un L-system} -Un L-system (ou L-système en français) est un langage de réécriture permettant de modéliser l'évolution de modèles végétaux ou bactériologiques. (Wikipédia : \url{https://fr.wikipedia.org/wiki/L-Syst%C3%A8me}). -\\ -Un L-system se base sur plusieurs paramètres: +\paragraph{} +Pour cela nous avions quelques consignes a respecter : \begin{itemize} -\item L'alphabet.\ref{alpha}\\ -C'est le "langage" du L-system, il est propre à chaque L-system et c'est à nous de le définir. -\item L'axiome.\ref{axiome}\\ -C'est l'élément qui servira de base à la génération. -\item Les règles.\ref{rules}\\ -Elles servent à définir comment le modèle va évoluer en partant de l'axiome. -\item Le nombre d'itérations.\ref{nbIt}\\ -Ce nombre indique le nombre de fois que les règles peuvent être appliquées. + \item Intégrer un parser de L-système. + \item Créer un moteur de réécriture. + \item Créer un moteur de rendu graphique. \end{itemize} -\subsubsection{Notre L-system} -Voici, expliqué en détail, les composants de notre L-système. -\paragraph{L'alphabet}\label{alpha} étant propre à chaque L-system, nous avons du créer le notre. -Il est constitué de 6 lettres , 10 chiffres et 6 caractères. -Les lettres comprennent 3 majuscules $(X,Y)$ et 3 minuscules $(x,y,z)$. -Les X représente un mouvement d'une unité et Y ne dessine pas et permet de controller. -Les trois minuscules quant à elles, permettent d'effectuer une rotation de +25° sur leurs axes respectifs. -Ainsi, $x = $ rotation de 25° par rapport à l'axe des $X$. -Les chiffres permettent, avec les symboles $(.,+,-)$ de faire varier les valeurs de base des lettres de l'alphabet. -Ainsi, $-0.5X$ représentera un mouvement négatif de 0.5 unités sur l'axe $X$. -De même, $+2x$ représentera un mouvement positif de 50° sur l'axe des $X$. -Les symboles, $([,])$ permettent de différer l'exécution d'une règle, nous expliquerons leur utilité dans cette ce paragraphe \ref{rules}. Pour le dernier symbole, $=$, son utilité sera expliquée dans ce paragraphe \ref{axiome}. -\paragraph{L'axiome}\label{axiome} -\paragraph{Les règles}\label{rules} -\paragraph{Le nombre d'itérations}\label{nbIt} -\subsection{Le parser} -\label{parser} -\subsection{Le moteur de réécriture} -\label{rw-engine} -\subsection{Le moteur graphique} -\label{g-engine} +\section{Mise en place du projet} +\chapter{L-SYSTEME} +\section{Principe et fonctionnement} +\section{Utilisation pour notre projet} +\chapter{ORGANISATION ET STRUCTURE} +\section{Organisation du projet} +\section{Structure du projet} -\section{Conclusion} -\end{document} \ No newline at end of file +\chapter{ELEMENTS TECHNIQUES} +\section{Parser} +\section{Moteur de réécriture} +\section{Moteur graphique} +\section{Interface} + +\chapter{EXPERIMENTATIONS ET USAGE} +\section{Tests de notre logiciel} +\section{Mesure de performance} + +\chapter{CONCLUSION} +\section{Récapitulatif} +\section{Propositions d'amélioration} + +\chapter{BIBLIOGRAPHIE} + +\chapter{ANNEXES} + +\end{document}