diff --git a/rapport/chapters/chapitre1.tex b/rapport/chapters/chapitre1.tex new file mode 100644 index 0000000..f00495f --- /dev/null +++ b/rapport/chapters/chapitre1.tex @@ -0,0 +1,23 @@ +\chapter{Introduction} +%\placeholderwarning +\section{Sujet et consiges} +%\paragraph{(optionnel) Pourquoi ce sujet est intéressant?} +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 pro-positions, notre choix s’est finalement porté sur le "Générateurs de floresvidéos-ludiques" et donc la réalisation d’un simulateur de L-système végétalproduisant une image 2D et 3D de l’objet par le biais de règles de réécritures. + +\info{Pour cela nous avions quelques consignes a respecter : +\begin{itemize} + \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}} + +Après lecture des consignes nous avons pu entamer nos recherches. + +\section{Mise en place du projet} +Nos recherches se sont premièrement portées sur le L-Système (principalement sur Wikipedia\footnote{\href[textcolor=blue]{https://en.wikipedia.org/wiki/L-system}{https://en.wikipedia.org/wiki/L-system}}) pour comprendre son fonctionnement nous donnant des informations sur comment construire notre parser et notre moteur de réécriture. Nous nous sommes ensuite renseigné sur les différents moteurs de rendu graphique que nous pouvions utiliser et notre choix c'est finalement porté sur JOGL (Java Open Graphics Library \footnote{\href[textcolor=blue]{https://jogamp.org/jogl/www/}{https://jogamp.org/jogl/www/}}) qui était conseillé dans la liste des sujets, pouvant gérer un rendu 2D et un rendu 3D. +\\ +\\ +Suite a ça nous avons réfléchit a la structure de notre code, une première ébauche sur laquelle nous pourrions nous baser pour débuter notre projet ainsi qu'un ordre de priorité, certaines parties étant necessaires pour que d'autres fonctionnent ou puissent être amorcées (comme le parser, les bases du système de réécriture ou encore les différents moteurs de rendu). +\\ +Puis, pour terminer notre mise en place, nous avons décidé que nous rajouterions une interface ainsi qu'une fenêtre d'aide a notre futur code dans le but de faciliter son utilisation. + diff --git a/rapport/chapters/chapitre2.tex b/rapport/chapters/chapitre2.tex new file mode 100644 index 0000000..c9c9eba --- /dev/null +++ b/rapport/chapters/chapitre2.tex @@ -0,0 +1,11 @@ +\chapter{L-Système} + +\section{Principe et fonctionnement} + +\subsection{Qu'est-ce que le le L-Système ?} + +\subsection{Comment fonctionne-t-il ?} + +\section{Exemple d'utilisation} + + diff --git a/rapport/chapters/chapitre3.tex b/rapport/chapters/chapitre3.tex new file mode 100644 index 0000000..d4c2fbf --- /dev/null +++ b/rapport/chapters/chapitre3.tex @@ -0,0 +1,20 @@ +\chapter{Organisation et structure} + +\section{Organisation du sujet} + +\section{Structure du projet} +\begin{itemize} + \item engine + \begin{itemize} + \item Rewrite: Moteur de réécriture + \item Element, ElementProperties et Parser: voir section 4.1 \ref{sec:parser} + \end{itemize} + \item screen + \begin{itemize} + \item gl3d: Tout les objets relatifs a l'affichage 3d du L-Systeme, voir la section \label{src:interface3d} + \item main: Tout les objets relatifs au menu, voir la section \label{sec:menu} + \end{itemize} + \item utils: contient l'objet Pair qui est essentiel au fonctionnement du projet +\end{itemize} + +A détailler un peu plus diff --git a/rapport/chapters/chapitre4.tex b/rapport/chapters/chapitre4.tex new file mode 100644 index 0000000..2e6e66c --- /dev/null +++ b/rapport/chapters/chapitre4.tex @@ -0,0 +1,6 @@ +\chapter{Elements techniques} +\section{Parser}\label{sec:parser} +\section{Moteur de réécriture} +\section{Moteur graphique}\label{src:interface3d} +\section{Interface principale}\label{sec:menu} +\section{Pair ou un tuple a 2 entrées en java} \ No newline at end of file diff --git a/rapport/chapters/chapitre5.tex b/rapport/chapters/chapitre5.tex new file mode 100644 index 0000000..f745eee --- /dev/null +++ b/rapport/chapters/chapitre5.tex @@ -0,0 +1,39 @@ +\chapter{Experimentations et Usages} + +\section{Manuel d'utilisation} + +\subsection{Préambule} +Notre application a été développé et pensé pour les versions de java supérieurs ou égales à la version 8u281. +L'application fonctionne sur Linux avec une interface tournant sur les moteurs graphiques Xorg et Wayland et sur Windows 10. + +Les archives jar de Jogl doivent se trouver dans le dossier lib selon le modèle ci-dessous (image) + +\info{Nous ne pouvons pas vous garantir si l'application fonctionne sur Mac OS X, aucun des membres de notre n'en possède un.} + +\subsection{Lancement de l'application} + +Blablabla commande ant run blablabla + +\subsection{Utilisation de l'interface utilisateur} + +comment utiliser les menus + +\subsection{Navigation dans l'interface graphique en 3D} + +blablabla z pour avancer, s pour reculer, q pour aller a gauche, d pour aller a droite, w pour monter, x pour descendre, molette de la souris pour avancer ou reculer, clique gauche pour tourner la vue, blablabla + +\problem{Vous ne pouvez pas utiliser 2 touches ou plus en même temps pour naviguer par exemple Z et D pour aller la direction nord-est est impossible, tourner votre caméra dans la direction que vous voulez aller pour appuyer sur Z.} + +Fermer la fenetre 3D pour pouvoir générer un nouveau L-Systeme sans avoir à rouvrir l'application + +\section{Tests de notre logiciel} + +\subsection{exemple test 1} + +\subsection{exemple test 2} + +\subsection{Possibles problèmes} + +StackOverflowError quand on met trop d'itérations + +\section{Mesure de performance} \ No newline at end of file diff --git a/rapport/chapters/chapitre6.tex b/rapport/chapters/chapitre6.tex new file mode 100644 index 0000000..e69de29 diff --git a/rapport/main.tex b/rapport/main.tex new file mode 100644 index 0000000..023723f --- /dev/null +++ b/rapport/main.tex @@ -0,0 +1,215 @@ +\documentclass[ + headsepline=on, + footsepline=on, + twoside=off, + abstract=on, + DIV=10 +]{scrreprt} + +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\usepackage[english, french]{babel} +\usepackage{multirow} +\usepackage[dvipsnames]{xcolor} +\usepackage[allbordercolors=white]{hyperref} +\usepackage{mdframed} +\usepackage{pgfplotstable} +\usepackage{tikz-3dplot} +\usepackage[OT1]{fontenc} +\usepackage{lipsum} +\usepackage{amsmath} +\usepackage{lscape} % permet de faire des pages en mode paysage +\usepackage{algorithmicx} +\usepackage[noend]{algpseudocode} +\usepackage{listings} +\hyphenpenalty 10000 + +\definecolor{link}{HTML}{4169E1} +\usepackage[bottom=2cm,footskip=8mm]{geometry} + +\newmdenv[ +rightline=false, +topline=false, +bottomline=false, +backgroundcolor=BurntOrange!5, +fontcolor=BrickRed, +linecolor=Red, +linewidth=1pt]{problemenv} + +\newcommand{\problem}[1]{ +\begin{problemenv} +\sffamily +#1 +\end{problemenv} +} + +\newmdenv[ +rightline=false, +topline=false, +bottomline=false, +backgroundcolor=ForestGreen!5, +fontcolor=OliveGreen, +linecolor=Green, +linewidth=1pt]{resultenv} + +\newcommand{\result}[1]{ +\begin{resultenv} +\sffamily +#1 +\end{resultenv} +} + +\newmdenv[ +rightline=false, +topline=false, +bottomline=false, +backgroundcolor=Cyan!5, +fontcolor=Blue, +linecolor=NavyBlue, +linewidth=1pt]{infoenv} + +\newcommand{\info}[1]{ +\begin{infoenv} +\sffamily +#1 +\end{infoenv} +} + +\newcommand{\img}[1]{ +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{#1} +\end{figure} +} + +\newcommand{\imgwlegend}[2]{ + \begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{#1} + \caption{#2} + \end{figure} +} + +% Gestion d'abstracts multiples + +\newenvironment{abstractpage} +{\cleardoublepage\vspace*{\fill}\thispagestyle{empty}} +{\vfill\cleardoublepage} + +\renewenvironment{abstract}[1] +{\bigskip\selectlanguage{#1}% + \begin{center}\bfseries\abstractname\end{center}} +{\par\bigskip} + +% Gestion des keywords + +\newcommand{\keywords}{\sffamily\textit{Keywords : }\bfseries} + +%Page style + +\pagestyle{headings} +\pagenumbering{arabic} + + +%Title page + +\titlehead{ + \includegraphics[width=0.25\textwidth]{pics/LOGO-UNICAEN_V-2.1-N.png} + \hfill + %\includegraphics[width=0.25\textwidth]{pics/} +} +\subject{ + \small + Université de Caen Normandie\\ + UFR des Sciences\\ + Département Informatique\\ + \hfill\\ + 2ème année de licence d'informatique +} +\title{ + \hrulefill + %\hrulefill + \vfill\\ + \Huge \bfseries \\L-Systeme +} +\subtitle{ + Conception logicielle\\ + \hfill + \\ + \hrulefill + \hfill\\ + {\normalfont Rapport de projet} +} +\author{ + \small + \hfill\\ + Antonin \bsc{Boyon}\\ + Thomas \bsc{Lalong}\\ + Quentin \bsc{Legot}\\ + Arthur \bsc{Page} +} +\date{} + +\newcommand{\placeholderwarning}{ +\problem{CECI EST UN PLACEHOLDER. À REMPLACER AVEC LES DONNÉES INDIQUÉES.} +} + +\makeglossary +%redaction guide -> https://docs.google.com/document/d/1YfxGWD0GbRxs-OLxRxoA8Sg8OuVYTSKK8HX1ScFYlFA +\begin{document} + + + \maketitle + + \pagenumbering{Roman} + + \tableofcontents + \listoffigures + \clearpage + + %\begin{abstractpage} + % \begin{abstract}{french} + % \lipsum[1] + % \end{abstract} + % + % \begin{abstract}{english} + % \lipsum[1] + % \end{abstract} + % \hfill\\ + % %\keywords{test lol boup incroyable rassuré} + %\end{abstractpage} + + + + + \pagenumbering{arabic} + \info{Placeholder info} + \problem{Placeholder problem} + \result{Placeholder result} + + \input{chapters/chapitre1.tex} + + \input{chapters/chapitre2.tex} + \input{chapters/chapitre3.tex} + \input{chapters/chapitre4.tex} + \input{chapters/chapitre5.tex} + \input{chapters/chapitre6.tex} + %\input{chapters/validation.tex} + %\input{chapters/conclusion.tex} + \cleardoublepage + \pagebreak + + \pagenumbering{roman} + \chapter{Annexes} + \section{Remerciement} + Triss Jacquiot pour le modèle de rapport bien plus beau que l'original + \addcontentsline{toc}{section}{6.2\quad{}Bibliographie} + \begin{thebibliography}{} + \bibitem{ano05} + A. Nonymous et al.\ 2005 + \bibitem{oe04} + A.N. Other \& S.O.M. Ebody 2004 + \end{thebibliography} + + +\end{document} \ No newline at end of file diff --git a/rapport/pics/LOGO-UNICAEN_V-2.1-N.png b/rapport/pics/LOGO-UNICAEN_V-2.1-N.png new file mode 100644 index 0000000..59436b9 Binary files /dev/null and b/rapport/pics/LOGO-UNICAEN_V-2.1-N.png differ diff --git a/rapport/rapport.tex b/rapport/rapport.tex deleted file mode 100644 index fb7edbf..0000000 --- a/rapport/rapport.tex +++ /dev/null @@ -1,68 +0,0 @@ -\documentclass[12pt]{report} - -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage[french]{babel} -\usepackage{hyperref} -\usepackage{graphicx} -\title{CONCEPTION LOGICIELLE\\L-SYSTEME} -\author{Antonin \bsc{Boyon}\\ -Thomas \bsc{Lalong}\\ -Quentin \bsc{Legot}\\ -Arthur \bsc{Page}} -\date{\today} - -\begin{document} - -\maketitle -\thispagestyle{empty} -\setcounter{page}{0} - -\tableofcontents -\newpage - -\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. - -\paragraph{} -Pour cela nous avions quelques consignes a respecter : -\begin{itemize} - \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} - -\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} - -\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}