From 418850502ea31e8cab62067465e8a79657e1bb03 Mon Sep 17 00:00:00 2001 From: Arthur <78031901+Arthur7770@users.noreply.github.com> Date: Fri, 16 Apr 2021 11:48:15 +0200 Subject: [PATCH] Update Rapport --- rapport/chapters/chapitre4.tex | 13 ++++++++ rapport/chapters/chapitre5.tex | 58 +++++++++++++++++++++++++++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/rapport/chapters/chapitre4.tex b/rapport/chapters/chapitre4.tex index 2e6e66c..2a09535 100644 --- a/rapport/chapters/chapitre4.tex +++ b/rapport/chapters/chapitre4.tex @@ -3,4 +3,17 @@ \section{Moteur de réécriture} \section{Moteur graphique}\label{src:interface3d} \section{Interface principale}\label{sec:menu} +\subsection{Composition de l'interface} +\paragraph{L'interface} + utilisateur de notre logiciel à été conçue grâce à la bibliothèqye \textit{Swing} de Java. Elle se compose de trois classes, une contenant la fenêtre principale \textbf{(MainFrame)}, un autre permettant de créer des onglets \textbf{(Tab)} et une troisième classe gérant les événements \textbf{(Listener)}. +\subsection{Classes de l'interface} +\subsubsection{MainFrame} +\paragraph{La classe MainFrame} est une classe héritant de la classe JFrame de Swing. Elle permet de créer une fenêtre de base, de taille prédéfinie dans laquelle peuvent être placés des composants graphiques. Elle comprend aussi un bouton de fermeture qui, une fois cliqué, permet l'arrêt du programme.\\ +Elle comporte ainsi une instance de la classe JTabbedPane \label{jtpane}, un conteneur graphique donc le but est de disposer ses composants sous la forme d'onglets. + +\subsubsection{Tab} +\paragraph{La classe Tab } est une classe héritant de la classe JPanel de Swing. JPanel est un composant de base dans lequel il est possible d'ajouter d'autres composants graphiques. Les intances de Tab crées sont ensuites ajoutées par la classe MainFrame à son composant de la classe JTabbedPane \ref{jtpane}. + +\subsubsection{Listener} +\paragraph{La classe Listener} est une classe implémentant certaines classes Listener de Swing \textbf{(ActionListener, KeyListener et MouseWheelListener)}. Elle permet de capter toutes les actions effectuées par l'utilisateur et d'appeler les méthodes correspondantes des classes de l'interface. Elle permet ainsi de créer de nouveaux onglets \textbf{(Nouvelles instances de Tab)} mais aussi d'en fermer ou bien encore de lancer la génération du modèle. \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 index f745eee..d831e12 100644 --- a/rapport/chapters/chapitre5.tex +++ b/rapport/chapters/chapitre5.tex @@ -20,8 +20,64 @@ 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 +\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} + +Pour naviguer dans l'espace 3D, vous pouvez utiliser votre clavier ainsi que votre souris \textbf{(La souris n'est pas essentielle, le clavier peut amplement suffir)}. + +\paragraph{Liste des commandes au clavier : } +\begin{itemize} + \item \textbf{Z} $\xrightarrow{}$ Avancer + \item \textbf{S} $\xrightarrow{}$ Reculer + \item \textbf{Q} $\xrightarrow{}$ Aller à gauche + \item \textbf{D} $\xrightarrow{}$ Aller à droite + \item \textbf{A} $\xrightarrow{}$ Tourner la caméra à gauche + \item \textbf{E} $\xrightarrow{}$ Tourner la caméra à droite + \item \textbf{W} $\xrightarrow{}$ Prendre de la hauteur + \item \textbf{X} $\xrightarrow{}$ Perde de la hauteur + \end{itemize} +\paragraph{Liste des commandes à la souris :} + \begin{itemize} + \item \textbf{Mollette Avant} $\xrightarrow{}$ Zommer + \item \textbf{Mollette Arrière} $\xrightarrow{}$ Dézoomer + \item \textbf{Clic Droit} $\xrightarrow{}$ Maintenir puis bouger la souris pour changer l'orientation de la caméra + +\end{itemize} + +\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 où vous voulez aller puis appuyer sur Z.} + +Fermez 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} \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