180 lines
5.4 KiB
TeX
180 lines
5.4 KiB
TeX
\DocumentMetadata{testphase = {phase-II,sec,toc,graphic,minipage,text}}
|
|
\documentclass[a4paper]{article}
|
|
|
|
% Font
|
|
\usepackage[T1]{fontenc}
|
|
\renewcommand{\familydefault}{\sfdefault}
|
|
\usepackage[nopatch=footnote]{microtype}
|
|
|
|
% Languages
|
|
\usepackage[french]{babel}
|
|
\frenchsetup{SmallCapsFigTabCaptions=false}
|
|
\usepackage{csquotes}
|
|
\MakeOuterQuote{"}
|
|
|
|
% Images
|
|
\usepackage{svg}
|
|
\usepackage{multicol}
|
|
\usepackage{subcaption}
|
|
\usepackage{float}
|
|
|
|
\newcommand{\img}[1]{
|
|
\begin{subfigure}[b]{0.3\textwidth}
|
|
\includesvg[width=\textwidth]{imgs/#1.svg}
|
|
\caption{\MakeUppercase #1}
|
|
\end{subfigure}
|
|
}
|
|
|
|
% Add \extra info to title
|
|
\makeatletter
|
|
\providecommand{\extra}[1]{
|
|
\apptocmd{\@author}{
|
|
\end{tabular}
|
|
\par\vspace*{0.7em}
|
|
\begin{tabular}[t]{c}
|
|
#1}{}{}
|
|
}
|
|
\makeatother
|
|
|
|
% Alias
|
|
\def\matthieu{Matthieu Tonino}
|
|
\def\anri{Anri Kennel}
|
|
\def\lsys{L-système}
|
|
\def\xml{\texttt{XML}}
|
|
\def\xsl{\texttt{XSL}}
|
|
\def\xsd{\texttt{XSD}}
|
|
\def\csv{\texttt{CSV}}
|
|
\def\svg{\texttt{SVG}}
|
|
|
|
% Metadatas
|
|
\def\docTitle{Rapport de projet sur les~\lsys{}s}
|
|
\def\docAuthor{\matthieu~et \anri}
|
|
\def\docSubject{Format de documents et XML}
|
|
\def\docLocation{Université Paris Cité}
|
|
|
|
\usepackage[
|
|
pdfauthor={\docAuthor}, % author metadata
|
|
pdftitle={\docTitle}, % title metadata
|
|
pdfsubject={\docSubject}, % subject metadata
|
|
hidelinks, % clickable links in table of contents
|
|
]{hyperref}
|
|
|
|
\title{\docTitle}
|
|
\author{\matthieu\thanks{\matthieu : 22309517}~
|
|
et \anri\thanks{\anri : 22302653}}
|
|
\extra{\docSubject~$\cdot$ \docLocation}
|
|
\date{Année universitaire 2023-2024}
|
|
|
|
|
|
\begin{document}
|
|
\maketitle
|
|
\flushbottom
|
|
\tableofcontents
|
|
\clearpage
|
|
|
|
\section[Description]{Description du projet}
|
|
Le projet a pour but de générer un fichier \svg~en partant d'un \lsys~en
|
|
utilisant des transformations de \xml~par \xsl.
|
|
|
|
\subsection{Gestion de projet}
|
|
Nous avons écrit un \texttt{Makefile} pour nous faciliter le développement.
|
|
|
|
\subsubsection*{Une cible qui fait tout}
|
|
\begin{description}
|
|
\item[\texttt{make nom=snow n=3}] génère une image \svg~sous
|
|
\texttt{image.svg} qui correspond au \lsys~"snow" avec trois itérations.
|
|
\end{description}
|
|
|
|
\subsubsection*{Possibilité de faire une étape à la fois}
|
|
\begin{description}
|
|
\item[\texttt{make generation}] génère le fichier \xml~des \lsys{}s.
|
|
\item[\texttt{make tortue nom=koch5 n=4}] génère le fichier \xml~du
|
|
\lsys{}~"koch5" avec quatre itérations.
|
|
\item[\texttt{make traceur}] génère le fichier \xml~du traceur.
|
|
\item[\texttt{make svg}] génère le fichier \svg.
|
|
\end{description}
|
|
|
|
\subsubsection*{Utilitaires}
|
|
\begin{description}
|
|
\item[\texttt{make saxon}] télécharge Saxon pour la transformation
|
|
des fichiers \xml~via \xsl.
|
|
\item[\texttt{make clean}] supprime les fichiers générés.
|
|
\end{description}
|
|
|
|
|
|
\section{Explication des choix}
|
|
Dans cette partie, nous justifions nos décisions.
|
|
|
|
\subsection{Conception}
|
|
Nous avons choisi le langage de programmation Python pour réaliser la
|
|
première partie du projet parce que c'est un langage simple pour ce que nous
|
|
voulons faire. Il est doté d'une librairie qui permet de générer des fichiers
|
|
\xml~et que nous maîtrisons tous les deux.
|
|
|
|
|
|
\section{Répartition des tâches}
|
|
La conversion du fichier \csv~en fichier \xml, ainsi que la transformation
|
|
du fichier XML ainsi généré en fichier \xml~de la tortue ont été faites
|
|
par \anri.
|
|
La conversion du fichier \xml~de la tortue en fichier \xml~du traceur a été
|
|
écrite par \matthieu.
|
|
La conversion du fichier \xml~du traceur en fichier \svg~a été écrite par \anri.
|
|
Chacun a écrit les fichiers \xsd~correspondant à ses fichiers \xml.
|
|
|
|
|
|
\subsection[Chronologie]{Chronologie des tâches}
|
|
\def\sp{\hspace{8pt}} % petit espace pour l'alignement
|
|
\begin{description}
|
|
\item[15 avril] Début de l'écriture du parseur \csv~vers \xml
|
|
\item[17 avril] Transformation du fichier \csv~vers \xml~achevée
|
|
\item[26 avril] Écriture du schéma \xml~validant le format du fichier \xml~généré
|
|
\item[27 avril] Écriture des fichiers \xsl~et \xsd~pour la tortue
|
|
\item[2 mai\sp] Écriture des fichiers \xsl~et \xsd~pour le traceur
|
|
\item[4 mai\sp] Écriture des fichiers \xsl~pour la conversion en \svg
|
|
\item[5 mai\sp] Essaie pour centrer les images \svg.
|
|
\item[6 mai\sp] Correction de bugs pour \texttt{STORE} et \texttt{RESTORE}
|
|
\item[6 mai\sp] Gestion de déplacements pour les \svg~et optimisation
|
|
\item[6 mai\sp] Ajout de quelques \lsys{}s trouvés sur
|
|
\href{https://onlinetools.com/math/l-system-generator}{onlinetools}
|
|
et \href{https://anvaka.github.io/lsystem/}{anvaka/lsystem}
|
|
\item[18 mai\,] Images \svg~correctement centrés
|
|
\item[18 mai\,] Finalisation du rapport
|
|
\end{description}
|
|
|
|
|
|
\section{Limitations}
|
|
Dans cette partie, nous abordons les limitations de notre projet.
|
|
|
|
\subsection{Difficultés rencontrées}
|
|
Nous avons eu des difficultés a correctement géré les \texttt{STORE} et
|
|
les \texttt{RESTORE} dans une pile dans le \xsl~du traceur. Aussi la méthode
|
|
pour centrer les images \svg~générées a été plus compliqué a réalisé que prévu.
|
|
|
|
\newpage
|
|
\appendix
|
|
\section{Images générées}
|
|
\pagenumbering{gobble}
|
|
|
|
\begin{figure}[H]
|
|
Quelques exemples d'images générés\dots
|
|
\begin{multicols}{3}
|
|
\img{blocks}
|
|
\img{br1}
|
|
\img{br2}
|
|
\img{br3}
|
|
\img{gosp6}
|
|
\img{koch}
|
|
\img{koch3}
|
|
\img{levey}
|
|
\img{moore}
|
|
\img{pentaplexy}
|
|
\img{pentl}
|
|
\img{sierp}
|
|
\img{snow}
|
|
\img{square}
|
|
\img{star}
|
|
\img{triangles}
|
|
\end{multicols}
|
|
\end{figure}
|
|
|
|
\end{document}
|