Retour

par-datfile.tex

Télécharger le fichier
 
Il peut être parfois utile d'utiliser des fichiers externes, que ce
soit en lecture ou en écriture. Par exemple, lorsque l'on a construit
des solides nécessitant de longs temps de calcul et que l'on veut
tester différents points de vues ou différentes couleurs, il peut être
intéressant de sauvegarder ces solides pour les relire ensuite, ce qui
évitera de les recalculer. En particulier, cette technique est souvent
utilisé pour construire des animations. On peut aussi avoir envie
d'exporter un solide pour le réutiliser avec un autre logiciel.
 
Pour pst-solides3d, le choix a été
fait de déléguer toutes les procédures de lecture$/$écriture à
l'interpréteur postscript (et non pas à \TeX {} ou \LaTeX). En
conséquence, ce n'est pas la compilation \LaTeX {} qui provoquera
l'exécution d'un ordre de lecture$/$écriture, mais la visualisation du
fichier postscript produit.
 
En règle générale, la lecture de fichiers externes par un interpréteur
postscript ne pose pas de problème (s'il n'y a pas franchissement de
répertoire). Pour l'écriture en revanche, cela peut poser des
problèmes de sécurité et il n'est pas rare que le visualisateur
postscript interdise l'écriture par défaut. Il faut alors le
configurer pour autoriser cette écriture.
 
\encadre{Par défaut, sous Windows et Linux, la protection des fichiers
  du disque dur est activée et ne permet donc pas l'écriture sur le
  disque. Pour désactiver cette protection, tout au moins
  temporairement, voici les deux procédures correspondantes : 
 
\begin{description}
 
  \item[Linux : ] le plus simple est donc d'utiliser ghostscript
  directement, en console. Comme il n'y a rien à attendre comme image :
 
\$> gs  -dNOSAFER  monfichier.ps quit.ps
  \item[Windows : ] dans le menu \textsf{Options}, l'option
    \textsf{Protection des fichiers} ne doit pas être cochée. 
\end{description}}
 
 
\section {Fichiers .dat (spécifique à pst-solides3d)}
 
Dans pst-solides3d, la structure de données utilisée pour un solide
comporte $4$~champs. Elle peut être stockée dans un ensemble de $4$
fichiers .dat.
 
\subsection {\' Ecriture de fichiers .dat}
 
On utilise l'action \Cadre{[action=writesolid} dans \verb+\psSolid+, et on
utilise l'option \Cadre{file} pour spécifier le nom du fichier.
 
Par exemple, considérons le code ci-dessous~:
\begin{verbatim}
\psSolid[object=tore,
   file=montore,
   action=writesolid]
\end{verbatim}
 
La chaîne de commandes 
\Cadre{LaTeX->dvips->GSview (Windows)ou gv (Linux)}
permet de compiler, puis de transformer en postscript pour enfin
visualiser. 
 
Cette dernière opération va créer 4 fichiers  :
\begin{itemize}
  \item \texttt{montore-sommets.dat  } -> la liste des sommets ;
  \item \texttt{montore-faces.dat    } -> la liste des faces ;
  \item \texttt{montore-couleurs.dat } -> les couleurs des faces ;
  \item \texttt{montore-io.dat       } -> les bornes des indices des
    faces externes et internes.
\end{itemize}
 
 
\subsection {Lecture de fichiers .dat}
 
On utilise l'objet \Cadre{[object=datfile]} de \verb+\psSolid+, avec l'argument
\Cadre{file} pour spécifier le nom du fichier.
Ainsi le code
\begin{verbatim}
\psSolid[object=datfile, file=montore]
\end{verbatim}
va permettre d'utiliser l'objet stocké dans les fichiers .dat créés au
paragraphe précédent.
 
\section {Fichiers .obj}
 
Ce format n'utilise qu'un seul fichier, et permet de spécifier sommets
et faces.
Ce sont des fichiers très utilisés dans le domaine de la 3D et qu'on
trouve en abondance sur internet. Par contre, nous n'utilisons qu'une
forme simplifiée du format obj. On veillera à supprimer tous les
commentaires \texttt{\#} du fichier original et ne conserver que les
sommets : ce sont les lignes qui commencent par \texttt{v} et les
faces, lignes commençant par \texttt{f}. 
 
Les fichiers trop volumineux ne seront pas pris en compte car le
nombre maximal d'éléments pour un tableau \texttt{postscript} est
65535. Donc il faut que le nombre de sommets soit inférieur à 21845. 
 
\subsection {\' Ecriture de fichiers .obj}
 
On utilise l'action \Cadre{[action=writeobj} dans \verb+\psSolid+, et on
utilise l'option \Cadre{file} pour spécifier le nom du fichier.
 
Par exemple, le code ci-dessous~:
\begin{verbatim}
\psSolid[object=tore,
   file=montore,
   action=writeobj]
\end{verbatim}
produira le fichier \textsl{montore.obj} (après compilation et
visualisation du .ps produit).
 
\subsection {Lecture de fichiers .obj}
 
On utilise l'objet \Cadre{[object=objfile} de \verb+\psSolid+, avec l'argument
\Cadre{file} pour spécifier le nom du fichier.
Ainsi le code
\begin{verbatim}
\psSolid[object=objfile, file=montore]
\end{verbatim}
va permettre d'utiliser l'objet stocké dans les fichiers .obj créés au
paragraphe précédent.
 
\begin{LTXexample}[width=6cm]
\psset{viewpoint=20 15 10 rtp2xyz,Decran=20}
\begin{pspicture}(-3,-4)(3,3)
\psframe*[linecolor=cyan!50](-3,-4)(1,3)
\psSolid[object=objfile,
         unit=20,RotX=60,
         file=rocket]%
\end{pspicture}
\end{LTXexample}
 
\section {Fichiers .off}
 
Nous n'utilisons qu'une forme simplifiée du format off. En
particulier, les fichiers ne doivent comporter que des entrées
\verb+v+ ou \verb+f+.
 
Ce format n'utilise qu'un seul fichier, et permet de spécifier sommets
et faces.
 
\subsection {\' Ecriture de fichiers .off}
 
On utilise l'action \Cadre{[action=writeoff]} dans \verb+\psSolid+, et on
utilise l'option \Cadre{file} pour spécifier le nom du fichier.
 
Par exemple, le code ci-dessous~:
\begin{verbatim}
\psSolid[object=tore,
   file=montore,
   action=writeoff]
\end{verbatim}
produira le fichier \textsl{montore.off} (après compilation et
visualisation du .ps produit).
 
\subsection {Lecture de fichiers .off}
 
On utilise l'objet \Cadre{[object=offfile} de \verb+\psSolid+, avec l'argument
\Cadre{file} pour spécifier le nom du fichier.
Ainsi le code
\begin{verbatim}
\psSolid[object=offfile, file=montore]
\end{verbatim}
va permettre d'utiliser l'objet stocké dans les fichiers .off créés au
paragraphe précédent.