1 \documentclass{article
}
2 \usepackage[utf8
]{inputenc}
3 \usepackage[charter
]{mathdesign
}
4 \usepackage[margin=
2.5cm
]{geometry
}
9 \usepackage{showexpl
} % examples
11 \usepackage[frenchb
]{babel
}
14 \definecolor{hellgelb
}{rgb
}{1,
1,
0.85}
15 \definecolor{colKeys
}{rgb
}{0,
0,
1}
16 \definecolor{colIdentifier
}{rgb
}{0,
0,
0}
17 \definecolor{colComments
}{rgb
}{1,
0,
0}
18 \definecolor{colString
}{rgb
}{0,
0.5,
0}
24 basicstyle=
\ttfamily\small,
%
25 identifierstyle=
\color{colIdentifier
},
%
26 keywordstyle=
\color{colKeys
},
%
27 stringstyle=
\color{colString
},
%
28 commentstyle=
\color{colComments
},
%
34 showstringspaces=false,
%
43 \lstset{explpreset=
{pos=t,wide=false,rframe=
{},preset=
\centering}}
44 \lstdefinestyle{syntax
}{backgroundcolor=
\color{blue!
15},numbers=none,xleftmargin=
0pt,xrightmargin=
0pt,
46 \lstdefinestyle{code
}{backgroundcolor=
\color{red!
15},
%numbers=left,
47 xleftmargin=
0pt,xrightmargin=
0pt,
51 \newcommand\mpgdd{\texttt{mpgdd
}\xspace}
52 \newcommand\fichier[1]{\texttt{#1}}
53 \newcommand\variable[1]{\texttt{#1}}
54 \newcommand\typeMP[1]{\texttt{#1}}
55 \newcommand\typeGDD[1]{\texttt{#1}}
56 \newcommand\foncGDD[1]{\texttt{#1}}
60 \section{Introduction
}
62 \mpgdd est un ensemble d'outils pour la géométrie plane avec
\MP. Cet
63 ensemble se compose de plusieurs fichiers :
66 \item \fichier{gdd.mp
} : c'est le fichier principal, il contient
67 les structures et fonctions générales.
68 \item \fichier{gdd-arc.mp
} :
69 contient tout ce qui concerne les arcs de cercles.
70 \item \fichier{gdd-c2d.mp
} :
71 contient tout ce qui concerne les courbes du second degré.
72 \item \fichier{gdd-fct.mp
} :
73 contient quelques fonctions mathématiques usuelles.
74 \item \fichier{gdd-lbl.mp
} :
75 contient les fonctions relatives aux labels.
76 \item \fichier{gdd-plt.mp
} :
77 contient des fonctions facilitant la représentation de fonctions
79 \item \fichier{gdd-rep.mp
}
80 contient différents outils pour le tracé de figure dans un repère.
81 \item \fichier{gdd-tra.mp
}
82 contient les fonction permettant de gérer la transparence (code
83 emprunté à Anthony
\bsc{Phan
}).
86 Nous allons, dans la suite, décrire plus en détails chacune de ces
87 fonctions. Il est à noté aussi que certaines fonctions s'appuient sur
88 l'extension
\fichier{graph.mp
} présent dans toutes les bonnes
91 \section{Principe général de fonctionnement
}
93 \mpgdd utilise des tables comme structure principale.
94 Chaque objet est numéroté via le compteur
\variable{gddO
}, son
95 type
\footnote{Les types sont propres à
\mpgdd et seront décrit plus
96 tard.
} est stocké dans la table
\variable{gddT
[]} à la place
97 \variable{gddT
[gddO
]}. Les propriétés des objets sont définies dans, là
98 encore, des tables de type
\typeMP{numeric
} qui sont
99 \variable{gddA
[]},
\variable{gddB
[]},
\dots,
\variable{gddF
[]}.
101 Par exemple, pour un
\typeGDD{Point
} (type
\mpgdd), la première coordonnée
102 se trouve dans
\variable{gddA
[]} et la seconde dans
\variable{gddB
[]}
103 (les autres table ne sont pas utilisées pour un tel objet).
105 Il y a deux tables particulières
\variable{gddP
[]} qui est du type
106 \typeMP{path
} et
\variable{gddS
[]} qui est du type
107 \typeMP{string
}. Nous verrons plus tard quelle est leur utilité.
109 Bien entendu, lors d'une utilisation classique de
\mpgdd, l'appel à
110 toutes ces tables n'est pas chose courante. Les fonctions que nous
111 allons décrire dans la suite de ce documents permettent de ne pas
112 avoir recours trop précisément à cette machinerie.
116 On peut, avec
\mpgdd, construire plusieurs types
117 d'objets. Rappelons le, tout est
\emph{objet
} dont le nombre est
118 enregistré dans la variable
\variable{gddO
}. Le type d'objet, lui, est
119 stocké dans la table
\variable{gddT
[]}, et les tables
\variable{gddA
[]}
120 à
\variable{gddF
[]} contiennent les propriétés des objets.
122 Nous allons ici décrire chaque type de l'extension
\mpgdd ainsi que
123 leurs propriétés respectives.
125 \paragraph{Le type
\typeGDD{point
}} Ce type correspond au point de
126 l'espace euclidien. Pour être plus clair voici la fonction principale
127 pour créer un tel objet :
130 vardef Point(expr a,b) =
131 gddT
[incr gddO
] = "point";
132 gddA
[gddO
] = a; gddB
[gddO
] = b; gddO
136 Cette fonction «retourne» le compteur
\variable{gdd0
} et crée dans la
137 table de type une entrée
\typeGDD{point
} et les attributs (coordonnées)
138 correspondants
\variable{a
} et
\variable{b
} dans les tables
139 \variable{gddA
} et
\variable{gddB
}.
141 Avec un tel type de fonctionnement, la plupart des manipulations se
142 fait sur des
\typeMP{numeric
}s. En effet, pour déclarer un
143 \typeGDD{point
}, il suffit d'écrire
147 \variable{A
} prend alors la valeur courante de
\variable{gddO
}. C'est
148 l'identifiant de du point.
150 \paragraph{Le type
\typeGDD{vecteur
}} Ce type correspond aux vecteurs
151 définis à l'aide de deux points de l'espace euclidien. La fonction
152 créatrice d'un tel objet est celle-ci
155 vardef Vecteur(expr a,b) =
156 save n; n = incr gddO;
157 gddT
[n
] = "vecteur"; gddA
[n
] = PointImp(a); gddB
[n
] = PointImp(b); n
160 Cette fonction a la même architecture que celle correspondante au
161 \typeGDD{point
} : elle retourne la valeur courante de
\variable{gddO
}
162 après incrémentation, puis affecte le type
\typeGDD{vecteur
} à
163 l'entrée correspondante dans la table
\variable{gddT
}. Par contre, les
164 entrées des tables
\variable{gddA
} et
\variable{gddB
} sont
165 différentes. En effet, on stock ici les identifiants des points
166 formant le vecteur. La fonction
\foncGDD{PointImp
} s'assure que
167 l'entrée correspond bien à un identifiant de point et non pas une
168 \typeMP{pair
} \MP. Elle sera décrite plus en détail ultérieurement.
172 \section{Fonctions générales
}
174 \subsection{Relatives aux
\typeGDD{Point
}s
}
176 \subsection{Un peu de géométrie
}