/[geocaml]/geocaml/doc/manual/manual.tex
ViewVC logotype

Diff of /geocaml/doc/manual/manual.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by gmariano, Tue Sep 2 20:09:42 2003 UTC revision 1.2 by gmariano, Fri Sep 5 20:57:40 2003 UTC
# Line 1  Line 1 
1  \documentclass[12pt,a4paper]{report}  \documentclass[11pt,twoside,a4paper]{report}
2    
3  \usepackage{hevea}  \usepackage{hevea}
4    
# Line 10  Line 10 
10    
11  %\usepackage[dvips]{graphicx}  %\usepackage[dvips]{graphicx}
12    
13  \title{GeoCaml}  \newcommand{\geocaml}{%
14    \texttt{GeOCaml}\
15    }
16    
17    \title{\geocaml}
18    
19  \author{A. Doniec}  \author{A. Doniec}
20    
21    \newenvironment{geoenonce}[1]{%
22    \paragraph{#1}
23    }{%
24    }
25    
26    
27  \begin{document}  \begin{document}
28    
29  %  %
30  \maketitle  \maketitle
31    
32    \tableofcontents{}
33    
34    
35  \begin{center}  \begin{center}
36  GeoCaml est un projet accessible sur le site Savannah  \geocaml est un projet accessible sur le site Savannah
37    
38  \ahrefurl{http://savannah.gnu.org/projects/geocaml/}    \ahrefurl{http://savannah.gnu.org/projects/\geocaml/}  
39  \end{center}  \end{center}
40    
41    
42  \pagestyle{estas}  \pagestyle{estas}
43    
44  \chapter{Manuel GeoCaml}  \chapter{Manuel \geocaml}\thispagestyle{estas}
45    
46  \section{Installation}  \section{Installation}
47  \noindent  \noindent
48  GeoCaml est en téléchargement à l'adresse:\\  \geocaml est en téléchargement à l'adresse:\\
49  \texttt{http://freesoftware.fsf.org/download/geocaml/}  \texttt{http://freesoftware.fsf.org/download/geocaml/}
50  \newline  \newline
51  \noindent  \noindent
# Line 65  Détarer le fichier \texttt{geocaml-0.xx. Line 76  Détarer le fichier \texttt{geocaml-0.xx.
76    
77  \section{Configuration}  \section{Configuration}
78    
79  GeoCaml offre deux types d'affichage: l'un dans une fenêtre graphique, l'autre par le biai d'un fichier Postcript généré de manière automatique. La visualisation par la fenêtre graphique est utilisable immédiatement. En revanche pour la génération Postcript, quelques manipulations sont préalablement nécessaires.\\  \geocaml offre deux types d'affichage: l'un dans une fenêtre graphique, l'autre par le biai d'un fichier Postcript généré de manière automatique. La visualisation par la fenêtre graphique est utilisable immédiatement. En revanche pour la génération Postcript, quelques manipulations sont préalablement nécessaires.\\
80    
81  Il faut tout d'abord disposer d'un processeur XSLT. Plusieurs sont disponibles gratuitement, citons par exemple:  Il faut tout d'abord disposer d'un processeur XSLT. Plusieurs sont disponibles gratuitement, citons par exemple:
82  \begin{itemize}  \begin{itemize}
83  \item Sablotron sur http://www.gingerall.com/  \item Sablotron sur \ahrefurl{http://www.gingerall.com/}
84  \item TranforMiix sur http://www.mozilla.org/projects/xslt  \item TranforMiix sur \ahrefurl{http://www.mozilla.org/projects/xslt}
85    \item XsltProc sur \ahrefurl{http://xmlsoft.org/XSLT/xsltproc.html}
86  \end{itemize}  \end{itemize}
87    
88  Il faut ensuite télécharger (et bien sûr installer...) l'extention \texttt{pst-eucl} de Dominique Rodriguez à l'adresse suivante: http://dominique.rodriguez.9online.fr/pst-eucl/.  Il faut ensuite télécharger (et bien sûr installer...) l'extention \texttt{pst-eucl} de Dominique Rodriguez à l'adresse suivante: http://dominique.rodriguez.9online.fr/pst-eucl/.
89  Pour terminer, il faut éditer le fichier \texttt{postcript.sh} et choisir le processeur XLST (voire en ajouter un autre...) en commantant ou décommantant les lignes adéquates.  Pour terminer, il faut éditer le fichier \texttt{postcript.sh} et choisir le processeur XLST (voire en ajouter un autre...) en commantant ou décommantant les lignes adéquates.
90  \newpage  
91    
92    
93  \section{Présentation Rapide}  \section{Présentation Rapide}
94    
95  GeoCaml est un programme dédié à la géométrie euclidienne. Il permet par l'utilisation d'un langage simple (proche du langage naturel) de décrire des constructions géométriques. GeoCaml analyse le texte source décrivant la construction et génére un affichage graphique.\\  \geocaml est un programme dédié à la géométrie euclidienne. Il permet par l'utilisation d'un langage simple (proche du langage naturel) de décrire des constructions géométriques. \geocaml analyse le texte source décrivant la construction et génére un affichage graphique.\\
96    
97  Un exemple valant mieux qu'un long discours, considérons le problème de 'la droite de Simpson': \textit{Soit ABC un triangle, un point D appartenant à son cercle circonscrit, E, F, et G les projettés orthogonaux de D respectivement sur (BC), (CA), (AB). Que peut-on dire des points E, F, et G?}\\  Un exemple valant mieux qu'un long discours, considérons le problème
98    de
99    
100    
101    \begin{geoenonce}{«la droite de Simpson»}
102    \textit{Soit ABC un triangle, un point D appartenant à son cercle circonscrit, E, F, et G les projettés orthogonaux de D respectivement sur (BC), (CA), (AB). Que peut-on dire des points E, F, et G?}
103    \end{geoenonce}
104    
105    
106    Voici le fichier \geocaml source décrivant la construction:
107    
108    
109    \verbatiminput{../../exemple/simpson.geo}
110      
111    
 \noindent  
 Voici le source décrivant la construction:  
 \verbatiminput{../exemple/simpson.geo}  
112    
113  \vfill  \vfill
114    
115  \newpage  \newpage
116  GeoCaml peut afficher le résultat à l'écran:  \geocaml peut afficher le résultat à l'écran:
117  \begin{figure}[!h]  \begin{figure}[!h]
118    \begin{center}    \begin{center}
119      \includegraphics[width=0.6\columnwidth]{simpson.ps}      \includegraphics[width=0.7\columnwidth]{simpson.ps}
120    \end{center}    \end{center}
121  \end{figure}  \end{figure}
122    
# Line 99  ou générer un fichier Postcript: Line 124  ou générer un fichier Postcript:
124    
125  \begin{figure}[!h]  \begin{figure}[!h]
126    \begin{center}    \begin{center}
127      \includegraphics[width=0.6\columnwidth]{simpson_gv.ps}      \includegraphics[width=0.7\columnwidth]{simpson_gv.ps}
128    \end{center}    \end{center}
129  \end{figure}  \end{figure}
130    
# Line 107  ou générer un fichier Postcript: Line 132  ou générer un fichier Postcript:
132  \newpage  \newpage
133  \section{Description du langage}  \section{Description du langage}
134    
135  Un texte décrivant la figure est une suite de déclarations de points, de droites (ou segments...) et de cercles. Chaque déclaration commence par un \texttt{soit} (ou un \texttt{soient} \footnote{GeoCaml ne tenant pas compte de l'othographe, \texttt{soit} et \texttt{soient} peuvent s'utiliser indifferemment}) et se termine par un '\texttt{.}'. Lorsque l'on souhaite déclarer un objet qui n'apparaitra pas sur la figure (typiquement le cas des traits de constructions), on fait précéder la déclaration du signe '\texttt{/}'.  Un texte décrivant la figure est une suite de déclarations de points,
136    de droites (ou segments...) et de cercles. Chaque déclaration commence
137    par un \texttt{soit} (ou un \texttt{soient} \footnote{\geocaml ne
138      tenant pas compte de l'othographe, \texttt{soit} et \texttt{soient}
139      peuvent s'utiliser indifferemment}) et se termine par un
140    '\texttt{.}'. Lorsque l'on souhaite déclarer un objet qui n'apparaitra
141    pas sur la figure (typiquement le cas des traits de constructions), on
142    fait précéder la déclaration du signe '\texttt{/}'.
143    
144  \subsection{Les points}  \subsection{Les points}
145    
146  GeoCaml utilise comme identifiants pour les points une chaîne de caractères éventuellement suivie d'un nombre.  \geocaml utilise comme identifiants pour les points une chaîne de
147    caractères éventuellement suivie d'un nombre.
148    
149  \subsubsection{Le point quelconque}  \subsubsection{Le point quelconque}
150    
151  Pour créer un (ou plusieurs) point(s) quelconque(s), plusieurs syntaxes sont possibles:\\  Pour créer un (ou plusieurs) point(s) quelconque(s), plusieurs syntaxes sont possibles:\\
152  \newline  
153    
154  \begin{boxedverbatim}  \begin{boxedverbatim}
155  soit <identifiant> un point.  soit <identifiant> un point.
156  \end{boxedverbatim}  \end{boxedverbatim}
# Line 141  soient <id_1,id_2,...,id_n> <n> points q Line 175  soient <id_1,id_2,...,id_n> <n> points q
175  \end{boxedverbatim}  \end{boxedverbatim}
176  \\  \\
177  \smallskip  \smallskip
178  \\  
179  \paragraph{Remarque}: pour une question de cohérence dans la déclaration, GeoCaml exige que \texttt{n} référence le nombre exacte d'identifiants précédemment listés. Si ce n'est pas le cas, un message d'erreur est affiché.\\  \paragraph{Remarque}: pour une question de cohérence dans la
180    déclaration, \geocaml exige que \texttt{n} référence le nombre exacte
181    d'identifiants précédemment listés. Si ce n'est pas le cas, un message
182    d'erreur est affiché.
183    
184    
185  \noindent  \noindent
186  \paragraph{Exemple}:  \paragraph{Exemple}:
# Line 153  soient B,C,D 3 points quelconques. Line 191  soient B,C,D 3 points quelconques.
191    
192  \subsubsection{Les points d'intersections}  \subsubsection{Les points d'intersections}
193    
194  La première famille de points d'intersections que l'on rencontre en géométrie sont les intersections de droites (ou de segments):\\  La première famille de points d'intersections que l'on rencontre en
195  \newline  géométrie sont les intersections de droites (ou de segments):
196    
197    
198  \begin{boxedverbatim}  \begin{boxedverbatim}
199  soit <id_point> intersection de <id_line_1> et <id_line_2>.  soit <id_point> intersection de <id_line_1> et <id_line_2>.
200  \end{boxedverbatim}  \end{boxedverbatim}
201  \footnote{Nous verrons plus loin comment déclarer des droites et des segments}  \footnote{Nous verrons plus loin comment déclarer des droites et des segments}
 \\  
202    
203  La seconde famille est composée des intersections cercle/droite et cercle/cercle. De telles intersections sont en général formées de deux points (sauf cas extrème des tangentes où les deux points sont alors confondus). La déclaration nécessite donc l'introduction de deux identifiants:\\  
204  \newline  La seconde famille est composée des intersections cercle/droite et
205    cercle/cercle. De telles intersections sont en général formées de deux
206    points (sauf cas extrème des tangentes où les deux points sont alors
207    confondus). La déclaration nécessite donc l'introduction de deux
208    identifiants:
209    
210    
211  \begin{boxedverbatim}  \begin{boxedverbatim}
212  soientt <id_pt_1> et <id_pt_2> intersections de <id1> et <id2>.  soientt <id_pt_1> et <id_pt_2> intersections de <id1> et <id2>.
213  \end{boxedverbatim}  \end{boxedverbatim}
214  \\  
215  \newline  
216  \paragraph{Remarque}:\texttt{id1} et \texttt{id2} peuvent référencer des cercles ou des droites. Si \texttt{id1} et \texttt{id2} référencent tous deux une droite, un message d'erreur est affiché indiquant que ce type d'intersection retourne un point et non deux.  
217    \paragraph{Remarque}:\texttt{id1} et \texttt{id2} peuvent référencer
218    des cercles ou des droites. Si \texttt{id1} et \texttt{id2}
219    référencent tous deux une droite, un message d'erreur est affiché
220    indiquant que ce type d'intersection retourne un point et non deux.
221    
222  \subsubsection{Le milieu}  \subsubsection{Le milieu}
223    
224  GeoCaml permet la construction d'un milieu par la donnée soit de 2 points, soit d'un segment:\\  \geocaml permet la construction d'un milieu par la donnée soit de 2
225  \newline  points, soit d'un segment:
226    
227    
228  \begin{boxedverbatim}  \begin{boxedverbatim}
229  soit <id_milieu> milieu de <id_point_1> et <id_point2>.  soit <id_milieu> milieu de <id_point_1> et <id_point2>.
230  \end{boxedverbatim}  \end{boxedverbatim}
# Line 184  soit <id_milieu> milieu de <id_point_1> Line 235  soit <id_milieu> milieu de <id_point_1>
235  soit <id_milieu> milieu de <id_segment>.  soit <id_milieu> milieu de <id_segment>.
236  \end{boxedverbatim}  \end{boxedverbatim}
237  \\  \\
238  \newline  
239  \paragraph{Remarque}: si \verb+id_segment+ ne référence pas un segment, un message d'erreur est affiché.  \paragraph{Remarque}: si \verb+id_segment+ ne référence pas un
240    segment, un message d'erreur est affiché.
241    
242  \subsubsection{Points sur cercle/points sur droite}  \subsubsection{Points sur cercle/points sur droite}
243    
244  Nous avons vu qu'il était possible de définir un point quelconque dans le plan. Il est également possible de définir un point sur une droite ou sur un cercle:\\  Nous avons vu qu'il était possible de définir un point quelconque dans
245    le plan. Il est également possible de définir un point sur une droite
246    ou sur un cercle:
247    
248  \begin{boxedverbatim}  \begin{boxedverbatim}
249  soit <id_point> un point de <id_objet>.  soit <id_point> un point de <id_objet>.
250  \end{boxedverbatim}  \end{boxedverbatim}
251  \\  \\
252  \newline  
253  \paragraph{Remarque}: si \verb+id_objet+ ne référence ni une droite, ni un cercle, un message d'erreur est affciché.  \paragraph{Remarque}: si \verb+id_objet+ ne référence ni une droite,
254    ni un cercle, un message d'erreur est affiché.
255    
256  \subsection{Les droites et segments}  \subsection{Les droites et segments}
257    
258  Généralement en géométrie, les droites (et segments) sont identifiées par un couple de points entre parenthèses (ou entre crochets pour le segment).\\  Généralement en géométrie, les droites (et segments) sont identifiées
259  ex: \textit{soit le droite (AB) et le segment [BC]}\\  par un couple de points entre parenthèses (ou entre crochets pour le
260  GeoCaml utilise une syntaxe très proche, les identifiants de points étant séparés par une virgule.\footnote{Comme en géométrie, \texttt{(A,B)} et \texttt{(B,A)} référent à la même droite, il est donc possible d'utiliser les deux identifiants indifféremment} Il est également possible d'identifier les droites et les segments par une chaîne de caractère suivie d'un nombre comme pour les points.  segment).
261    
262    ex: \textit{soit le droite (AB) et le segment [BC]}
263    
264    \geocaml utilise une syntaxe très proche, les identifiants de points
265    étant séparés par une virgule.\footnote{Comme en géométrie,
266      \texttt{(A,B)} et \texttt{(B,A)} référent à la même droite, il est
267      donc possible d'utiliser les deux identifiants indifféremment} Il
268    est également possible d'identifier les droites et les segments par
269    une chaîne de caractère suivie d'un nombre comme pour les points.
270    
271  \subsubsection{Droites et segments quelconques}  \subsubsection{Droites et segments quelconques}
272    
273  Pour déclarer des droites et des segments quelconques, il est nécessaire d'employer la notation non-parenthésée pour l'identifiant:\\  Pour déclarer des droites et des segments quelconques, il est
274    nécessaire d'employer la notation non-parenthésée pour l'identifiant:
275    
276  \noindent  \noindent
277  \begin{boxedverbatim}  \begin{boxedverbatim}
278  soit <id_droite> une droite quelconque.  soit <id_droite> une droite quelconque.
279  \end{boxedverbatim}  \end{boxedverbatim}
280  \footnote{Contrairement au point, le mot réservé \texttt{quelconque} n'est pas facultatif}  \footnote{Contrairement au point, le mot réservé \texttt{quelconque} n'est pas facultatif}
281  \\  
282  \newline  
283    
284  \noindent  \noindent
285  \paragraph{Exemple}:  \paragraph{Exemple}:
286  \begin{verbatim}  \begin{verbatim}
# Line 223  soit D1 une droite quelconques. Line 289  soit D1 une droite quelconques.
289    
290  \subsubsection{Droites et segments passant par deux points}  \subsubsection{Droites et segments passant par deux points}
291    
292  Connaissant deux points, il possible de tracer la droite ou le segment qui en résulte. Deux syntaxes sont disponibles. La première utilise comme identifiant la chaîne de caractères quelconque:\\  Connaissant deux points, il possible de tracer la droite ou le segment
293    qui en résulte. Deux syntaxes sont disponibles. La première utilise
294    comme identifiant la chaîne de caractères quelconque:
295    
296  \noindent  \noindent
297  \begin{boxedverbatim}  \begin{boxedverbatim}
# Line 236  ou Line 304  ou
304  soit <id_droite> le segment passant par <id_pt_1> et <id_pt_2>.  soit <id_droite> le segment passant par <id_pt_1> et <id_pt_2>.
305  \end{boxedverbatim}  \end{boxedverbatim}
306  \\  \\
307  \newline  
308  \noindent  \noindent
309  La seconde utilise la notation parenthésée:\\  La seconde utilise la notation parenthésée:
310  \newline  
311  \noindent  \noindent
312  \begin{boxedverbatim}  \begin{boxedverbatim}
313  soit la droite (<id_pt_1>,<id_pt_2>).  soit la droite (<id_pt_1>,<id_pt_2>).
# Line 251  ou Line 319  ou
319  soit le segment [<id_pt_1>,<id_pt_2>].  soit le segment [<id_pt_1>,<id_pt_2>].
320  \end{boxedverbatim}  \end{boxedverbatim}
321  \\  \\
322  \newline  
323  \noindent  \noindent
324  \paragraph{Exemple}:  \paragraph{Exemple}:
325  \begin{verbatim}  \begin{verbatim}
# Line 263  soit le segment [D,C]. Line 331  soit le segment [D,C].
331  \subsubsection{Orthogonalité}  \subsubsection{Orthogonalité}
332    
333  Les droites perpendiculaires se définissent à partir d'une autre droite (voire d'un segment) et d'un point:\\  Les droites perpendiculaires se définissent à partir d'une autre droite (voire d'un segment) et d'un point:\\
334  \newline  
335    
336  \noindent  \noindent
337  \begin{boxedverbatim}  \begin{boxedverbatim}
338  soit <id1> la droite perpendiculaire à <id2> passant par <id_point>.  soit <id1> la droite perpendiculaire à <id2> passant par <id_point>.
# Line 271  soit <id1> la droite perpendiculaire à < Line 340  soit <id1> la droite perpendiculaire à <
340  \\  \\
341    
342  Pour ce qui est des segments, il faut en plus préciser la longueur. La notation utilisée pour représenter la longueur est celle de la distance algébrique:\\  Pour ce qui est des segments, il faut en plus préciser la longueur. La notation utilisée pour représenter la longueur est celle de la distance algébrique:\\
343  \newline  
344  \noindent  \noindent
345  \begin{boxedverbatim}  \begin{boxedverbatim}
346  soit <id1> le segment perpendiculaire à <id2>  soit <id1> le segment perpendiculaire à <id2>
# Line 304  Idem pour les segments:\\ Line 373  Idem pour les segments:\\
373  soit <id1> le segment parralèle à <id2>  soit <id1> le segment parralèle à <id2>
374  passant par <id_point> et de longueur |<id_point1>,<id_point2>|.  passant par <id_point> et de longueur |<id_point1>,<id_point2>|.
375  \end{boxedverbatim}  \end{boxedverbatim}
376  \\  
 \newline  
 \noindent  
377  \paragraph{Exemple}:  \paragraph{Exemple}:
378  \begin{verbatim}  \begin{verbatim}
379  soient A,B,C 3 points quelconques.  soient A,B,C 3 points quelconques.
# Line 340  soit D1 la médiatrice de [A,B]. Line 407  soit D1 la médiatrice de [A,B].
407    
408  \subsubsection{Bissectrice}  \subsubsection{Bissectrice}
409    
410  La construction d'un bissectrice requiert quant à elle trois points\footnote{qui définiront un angle bien entendu...}:\\  La construction d'un bissectrice requiert quant à elle trois points\footnote{qui définiront un angle bien entendu...}:
411  \newline  
412  \noindent  \noindent
413  \begin{boxedverbatim}  \begin{boxedverbatim}
414  soit <id1> la bissectrice de <id_pointA>,<id_pointB>,<id_pointC>.  soit <id1> la bissectrice de <id_pointA>,<id_pointB>,<id_pointC>.
# Line 374  soit <id_cercle> le cercle de centre <id Line 441  soit <id_cercle> le cercle de centre <id
441  \section{Utilisation du programme}  \section{Utilisation du programme}
442    
443  \noindent  \noindent
444  GeoCaml s'utilise en ligne de commandes:  \geocaml s'utilise en ligne de commandes:
445  \begin{verbatim}  \begin{verbatim}
446  > geocaml [option] <nom_du_fichier_source>  > geocaml [option] <nom_du_fichier_source>
447  \end{verbatim}  \end{verbatim}
# Line 390  Cinq options sont pour le moment disponi Line 457  Cinq options sont pour le moment disponi
457    --help display this list of options    --help display this list of options
458  \end{verbatim}  \end{verbatim}
459    
460    \appendix{}
461    
462    \chapter{Exemples}\thispagestyle{estas}
463    
464    
465    \section{La droite de Simson}
466    
467    \verbatiminput{../../exemple/simpson.geo}
468    
469    \section{Le milieu d'un segment}
470    
471    \verbatiminput{../../exemple/milieu.geo}
472    
473    
474    \section{Projection orthogonale}
475    
476    
477    \verbatiminput{../../exemple/projorth.geo}
478    
479    \section{Cercle circonscrit}
480    
481    
482    \verbatiminput{../../exemple/circonscrit.geo}
483    
484    
485    \section{Hexagone}
486    
487    
488    \verbatiminput{../../exemple/hexagone.geo}
489    
490    
491    \section{Un exercice}
492    
493    
494    \verbatiminput{../../exemple/exo00.geo}
495    
496    
497    \section{Bissectrice}
498    
499    \verbatiminput{../../exemple/02bissectrice.geo}
500    
501  \end{document}  \end{document}

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26