/[geocaml]/geocaml/doc/rapport/rapport1.tex
ViewVC logotype

Diff of /geocaml/doc/rapport/rapport1.tex

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

revision 1.3 by gmariano, Fri Sep 5 20:04:32 2003 UTC revision 1.4 by gmariano, Sun Sep 7 18:56:15 2003 UTC
# Line 87  Le point I est alors Line 87  Le point I est alors
87  l'intersection entre la droite (CD) et le segment [AB].On obtient  l'intersection entre la droite (CD) et le segment [AB].On obtient
88  alors la construction suivante:  alors la construction suivante:
89    
90    \begin{center}
91    %HEVEA\begin{toimage}
92  \begin{pspicture}(-7,-3.5)(10,4)  \begin{pspicture}(-7,-3.5)(10,4)
93  \pstGeonode(-2,0){A}  \pstGeonode(-2,0){A}
94  \pstGeonode(0,2){B}  \pstGeonode(0,2){B}
# Line 96  alors la construction suivante: Line 98  alors la construction suivante:
98  \pstInterCC{A}{B}{B}{A}{C}{D}  \pstInterCC{A}{B}{B}{A}{C}{D}
99  \pstLineAB{C}{D}  \pstLineAB{C}{D}
100  %\pstInter{C}{D}{A}{B}{I}  %\pstInter{C}{D}{A}{B}{I}
101  \end{pspicture}  \end{pspicture}  
102    %HEVEA\end{toimage}\imageflush  
103    \end{center}
104    
105    
106  Etudions maintenant comment le point I peut alors être représenté en mémoire sous forme d'arbre:  Etudions maintenant comment le point I peut alors être représenté en mémoire sous forme d'arbre:
107    
108  \begin{pspicture}(3,-11)(10,1)  \begin{center}
109    %HEVEA  \begin{toimage}
110      \begin{pspicture}(3,-11)(10,1)
111  \psset{levelsep=2.5cm,nodesep=2mm}  \psset{levelsep=2.5cm,nodesep=2mm}
112  \pstree{\Tr{point I}}{  \pstree{\Tr{point I}}{
113    \pstree{\Tr{droite (CD)}}{    \pstree{\Tr{droite (CD)}}{
# Line 131  Etudions maintenant comment le point I p Line 138  Etudions maintenant comment le point I p
138      }      }
139    }    }
140  \end{pspicture}  \end{pspicture}
141    %HEVEA    \end{toimage}\imageflush
142    
143    \end{center}
144    
145  Analysons cet arbre. Lorsque le noeud est un point, on l'obtient en  Analysons cet arbre. Lorsque le noeud est un point, on l'obtient en
146  traçant l'intersection de ses deux fils. Si c'est une droite, elle  traçant l'intersection de ses deux fils. Si c'est une droite, elle
# Line 277  Nous allons donc baser l'affichage sur 4 Line 287  Nous allons donc baser l'affichage sur 4
287  bleu. A chaucne de ces 4 couleurs, on associe une fonction qui va  bleu. A chaucne de ces 4 couleurs, on associe une fonction qui va
288  retourner un code RGB suivant ces contraintes:  retourner un code RGB suivant ces contraintes:
289    
290    %HEVEA\begin{toimage}
291  $$  $$
292  noir = \left\lbrace  noir = \left\lbrace
293    \begin{array}{l}    \begin{array}{l}
# Line 315  bleu = \left\lbrace Line 326  bleu = \left\lbrace
326     \end{array} \Rightarrow 20^3 = 8000 \ nuances     \end{array} \Rightarrow 20^3 = 8000 \ nuances
327  \right.  \right.
328  $$  $$
329      
330    %HEVEA\end{toimage}\imageflush{}
331    
332    
333  Cela nous offre la possibilité de construire et d'afficher 32000  Cela nous offre la possibilité de construire et d'afficher 32000
334  objets. Ces contraintes sont utilisées pour l'écriture des fonctions  objets. Ces contraintes sont utilisées pour l'écriture des fonctions
# Line 432  ne représentera pas un point d'intersect Line 446  ne représentera pas un point d'intersect
446  les pixels voisins.  les pixels voisins.
447    
448  \begin{center}  \begin{center}
449    %HEVEA  \begin{toimage}
450  \begin{pspicture}(4,3)  \begin{pspicture}(4,3)
451  \psgrid[gridlabels=0](4,2)  \psgrid[gridlabels=0](4,2)
452  \psframe*(0,0)(0.2,0.2)  \psframe*(0,0)(0.2,0.2)
# Line 483  les pixels voisins. Line 498  les pixels voisins.
498  \psframe*(0.8,1.8)(1,2)  \psframe*(0.8,1.8)(1,2)
499  \rput(2,-0.5){Fig. 2.2}  \rput(2,-0.5){Fig. 2.2}
500  \end{pspicture}  \end{pspicture}
501    %HEVEA  \end{toimage}\imageflush{}
502  \end{center}  \end{center}
503    
504  De même, lorsque les lignes ont plus d'un pixel en commun, tous ces  De même, lorsque les lignes ont plus d'un pixel en commun, tous ces
# Line 569  let list_point_drawn = ref [{p_label="" Line 585  let list_point_drawn = ref [{p_label=""
585                               p_p=(-1,-1) ;                               p_p=(-1,-1) ;
586                               p_id=-1}]                               p_id=-1}]
587  \end{verbatim}  \end{verbatim}
588  \item la liste des droites contiendra aussi noms, coordonnées et couleurs, avec en plus pour chaque droite la liste d'intersection obtenue lors du traçage avec la fonction \verb+ruler+ (cf Annexe):  \item la liste des droites contiendra aussi noms, coordonnées et
589      couleurs, avec en plus pour chaque droite la liste d'intersection
590      obtenue lors du traçage avec la fonction \verb+ruler+ (cf Annexe):
591    
592  \begin{verbatim}  \begin{verbatim}
593  type line_drawn =  type line_drawn =
594        {l_label: string ;        {l_label: string ;
# Line 613  suivantes: \verb+search_point_drawn+, \v Line 632  suivantes: \verb+search_point_drawn+, \v
632  besoin d'une fonction \verb+search_intersection+ permettant de  besoin d'une fonction \verb+search_intersection+ permettant de
633  retourner les coordonnées du point d'intersection entre deux objets.  retourner les coordonnées du point d'intersection entre deux objets.
634    
635  Le parcours de l'arbre est avant tout basé sur l'analyse des noeuds. Trois cas se présentent donc:  Le parcours de l'arbre est avant tout basé sur l'analyse des
636    noeuds. Trois cas se présentent donc:
637  \begin{itemize}  \begin{itemize}
638  \item \textsf{cas 1}: si le noeud est une droite, on commence par  \item \textsf{cas 1}: si le noeud est une droite, on commence par
639    regarder si cette droite n'a pas déjà été construite. Si ce n'est    regarder si cette droite n'a pas déjà été construite. Si ce n'est
# Line 639  cette droite à la liste \verb+list_line_ Line 659  cette droite à la liste \verb+list_line_
659  \item soit le point est quelconque, il suffit alors de lui générer au  \item soit le point est quelconque, il suffit alors de lui générer au
660    hasard des coordonnées et une couleur. Après l'avoir affiché à    hasard des coordonnées et une couleur. Après l'avoir affiché à
661    l'écran, on l'ajoute à la liste \verb+list_point_drawn+.    l'écran, on l'ajoute à la liste \verb+list_point_drawn+.
662  \item soit le point doit être construit par intersection. On exécute alors la fonction \verb+search_intersection+ pour obtenir ses coordonnées. Le reste se fait comme pour le point quelconque.  \item soit le point doit être construit par intersection. On exécute
663      alors la fonction \verb+search_intersection+ pour obtenir ses
664      coordonnées. Le reste se fait comme pour le point quelconque.
665  \end{itemize}  \end{itemize}
666  \end{itemize}  \end{itemize}
667    
# Line 846  on retourne le constructeur correspondan Line 868  on retourne le constructeur correspondan
868    
869  \begin{verbatim}  \begin{verbatim}
870  {  {
   
871  open Parser  open Parser
   
872  exception Eof  exception Eof
   
873  }  }
874    
875  rule token = parse  rule token = parse
# Line 892  reconnaitre la structure grammaticale de Line 911  reconnaitre la structure grammaticale de
911  l'utilisateur. Pour cela nous devons définir la grammaire de notre  l'utilisateur. Pour cela nous devons définir la grammaire de notre
912  langage:    langage:  
913    
914    %HEVEA  \begin{toimage}
915  $axiome \rightarrow UN \ POINT \ IDENTIFIANT \ r1 \\$  $axiome \rightarrow UN \ POINT \ IDENTIFIANT \ r1 \\$
916  $| UNE \ DROITE \ IDENTIFIANT r2 \\$  $| UNE \ DROITE \ IDENTIFIANT r2 \\$
917  $| UN \ SEGMENT \ IDENTIFIANT r2 \\$  $| UN \ SEGMENT \ IDENTIFIANT r2 \\$
# Line 928  $| LE \ POINT \ IDENTIFIANT \\$ Line 948  $| LE \ POINT \ IDENTIFIANT \\$
948    
949  $r3 \rightarrow DE \ CENTRE \ o2 \ ET \ PASSANT \ PAR \ o2 \\$  $r3 \rightarrow DE \ CENTRE \ o2 \ ET \ PASSANT \ PAR \ o2 \\$
950  $| DE \  CENTRE \ o2 \ ET \ DE \ RAYON \ IDENTIFIANT \\$  $| DE \  CENTRE \ o2 \ ET \ DE \ RAYON \ IDENTIFIANT \\$
951    %HEVEA  \end{toimage}\imageflush{}
952    
953  \chapter{Installation et utilisation}  \chapter{Installation et utilisation}
954  \minitoc{}  \minitoc{}

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

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