X-Git-Url: https://melusine.eu.org/syracuse/G/git/?p=mp-gdd.git;a=blobdiff_plain;f=doc%2Fmp-gdd-doc.tex;h=0a2515faa919514a8b96739f08cf1b3732be8535;hp=f71d136e2e7d697b608dd655fbf723ef37f23fd7;hb=HEAD;hpb=582bd872721899f23a1ef221b9d1abc57d39e759;ds=sidebyside diff --git a/doc/mp-gdd-doc.tex b/doc/mp-gdd-doc.tex index f71d136..0a2515f 100644 --- a/doc/mp-gdd-doc.tex +++ b/doc/mp-gdd-doc.tex @@ -1,14 +1,18 @@ -\documentclass{article} +\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[charter]{mathdesign} \usepackage[margin=2.5cm]{geometry} \usepackage{xspace} -\usepackage{xcolor} +\usepackage[svgnames]{xcolor} \usepackage{multicol} \usepackage{listings} \usepackage{showexpl} % examples \usepackage{mflogo} \usepackage[frenchb]{babel} +\usepackage{tikz} +\usepackage{url} + +\renewcommand{\ttdefault}{lmtt} \definecolor{hellgelb}{rgb}{1,1,0.85} @@ -22,9 +26,9 @@ language=metapost,% float=hbp,% basicstyle=\ttfamily\small, % - identifierstyle=\color{colIdentifier}, % - keywordstyle=\color{colKeys}, % - stringstyle=\color{colString}, % + identifierstyle=\color{DarkSlateGrey}, % + keywordstyle=\color{DarkBlue}\itshape, % + stringstyle=\color{Green}, % commentstyle=\color{colComments}, % columns=flexible, % tabsize=4, % @@ -38,7 +42,14 @@ breaklines=true, % breakautoindent=true, captionpos=b, - xleftmargin=1em + xleftmargin=1em, + sensitive=true, + morekeywords=[7]{Point,Vecteur}, + keywordstyle=[7]\color{FireBrick}, + morekeywords=[8]{gddO,gddA,gddB,gddC,gddT}, + keywordstyle=[8]\color{Sienna}, + morekeywords=[9]{PointImp}, + keywordstyle=[9]\color{Olive} } \lstset{explpreset={pos=t,wide=false,rframe={},preset=\centering}} \lstdefinestyle{syntax}{backgroundcolor=\color{blue!15},numbers=none,xleftmargin=0pt,xrightmargin=0pt, @@ -56,6 +67,32 @@ \newcommand\foncGDD[1]{\texttt{#1}} \begin{document} +%% === Page de garde =================================================== +\thispagestyle{empty} +\begin{tikzpicture}[remember picture, overlay] + \node[below right, shift={(-4pt,4pt)}] at (current page.north west) {% + \includegraphics{fond.pdf}% + }; +\end{tikzpicture}% + +\noindent +\includegraphics{mp-gdd}\\ +{\large Paquet \MP{} pour des figures de géométrie plane}\\[1cm] +\parbox{0.6\textwidth}{ +\includegraphics[scale=0.86]{figure.pdf} +}\hfill +\parbox{0.4\textwidth}{\Large\raggedleft + \textbf{Contributeurs}\\ + Maxime \textsc{Chupin}\\ + Jean-Michel \textsc{Sarlat} +} +\vfill +\begin{center} +Version 0.1 du 25 septembre 2011\\ +\url{http://melusine.eu.org/syracuse/G/mp-gdd/} +\end{center} +%% == Page de garde ==================================================== +\newpage \section{Introduction} @@ -88,15 +125,41 @@ fonctions. Il est à noté aussi que certaines fonctions s'appuient sur l'extension \fichier{graph.mp} présent dans toutes les bonnes distributions \TeX. +\section{Objectif} + +\mpgdd a été écrit avec le but de proposer des macros \MP{} permettant +de réaliser une figure de géométrie \emph{en collant} d'assez près +à une description impérative: +\begin{quote}\itshape +Soit \(A\) le point de coordonnées (2,3).\\ +Soit \(B\) le point de coordonnées (4,5).\\ +Trace la droite \((A,B)\).\\ +.... +\end{quote} +Dans ce cadre, les objets géométriques sont le plus souvent nommés +(\(A\), \(B\), etc.) ou désignés par leur nature et leurs attributs +(droite \((A,B)\), etc.). Pour ne pas avoir à dépasser ce mode de +description, en particulier pour éviter d'avoir à déclarer le +\emph{type} de ces objets, le choix a été fait de les identifier par +un \emph{index}\footnote{Le type \typeMP{numeric}, qui est le type par +défaut dans \MP, ne demande pas de déclaration préalable.} dans des +tables qui en précisent les caractéristiques. + +\textbf{Note} -- À ce jour, l'objectif n'est pas atteint, le +développement est loin d'être achevé; il est encore nécessaire de +faire appel à des commandes \MP{} ou à des \emph{macros +intermédiaires} pour décrire une figure. Cela évoluera sans doute +avec le temps, le temps de trouver une syntaxe satisfaisante... + \section{Principe général de fonctionnement} -\mpgdd utilise des tables comme structure principale. -Chaque objet est numéroté via le compteur \variable{gddO}, son -type\footnote{Les types sont propres à \mpgdd et seront décrit plus - tard.} est stocké dans la table \variable{gddT[]} à la place -\variable{gddT[gddO]}. Les propriétés des objets sont définies dans, là -encore, des tables de type \typeMP{numeric} qui sont -\variable{gddA[]}, \variable{gddB[]},\dots,\variable{gddF[]}. +\mpgdd utilise des tables comme structure principale. Chaque objet est +numéroté via le compteur \variable{gddO}, son type\footnote{Les types +sont propres à \mpgdd et seront décrits plus tard.} est stocké dans +la table \variable{gddT[]} à la place \variable{gddT[gddO]}. Les +propriétés des objets sont définies dans, là encore, des tables de +type \typeMP{numeric} qui sont \variable{gddA[]}, \variable{gddB[]}, +\dots, \variable{gddF[]}. Par exemple, pour un \typeGDD{Point} (type \mpgdd), la première coordonnée se trouve dans \variable{gddA[]} et la seconde dans \variable{gddB[]} @@ -122,7 +185,7 @@ stocké dans la table \variable{gddT[]}, et les tables \variable{gddA[]} Nous allons ici décrire chaque type de l'extension \mpgdd ainsi que leurs propriétés respectives. -\paragraph{Le type \typeGDD{point}} Ce type correspond au point de +\paragraph{Le type \typeGDD{Point}} Ce type correspond au point de l'espace euclidien. Pour être plus clair voici la fonction principale pour créer un tel objet : % @@ -142,12 +205,12 @@ Avec un tel type de fonctionnement, la plupart des manipulations se fait sur des \typeMP{numeric}s. En effet, pour déclarer un \typeGDD{point}, il suffit d'écrire \begin{lstlisting} -A = point(2,3); +A = Point(2,3); \end{lstlisting} \variable{A} prend alors la valeur courante de \variable{gddO}. C'est -l'identifiant de du point. +l'identifiant du point. -\paragraph{Le type \typeGDD{vecteur}} Ce type correspond aux vecteurs +\paragraph{Le type \typeGDD{Vecteur}} Ce type correspond aux vecteurs définis à l'aide de deux points de l'espace euclidien. La fonction créatrice d'un tel objet est celle-ci %