2 Il peut être parfois utile d'utiliser des fichiers externes, que ce
3 soit en lecture ou en écriture. Par exemple, lorsque l'on a construit
4 des solides nécessitant de longs temps de calcul et que l'on veut
5 tester différents points de vues ou différentes couleurs, il peut être
6 intéressant de sauvegarder ces solides pour les relire ensuite, ce qui
7 évitera de les recalculer. En particulier, cette technique est souvent
8 utilisé pour construire des animations. On peut aussi avoir envie
9 d'exporter un solide pour le réutiliser avec un autre logiciel.
11 Pour pst-solides3d, le choix a été
12 fait de déléguer toutes les procédures de lecture$/$écriture à
13 l'interpréteur postscript (et non pas à
\TeX {} ou
\LaTeX). En
14 conséquence, ce n'est pas la compilation
\LaTeX {} qui provoquera
15 l'exécution d'un ordre de lecture$/$écriture, mais la visualisation du
16 fichier postscript produit.
18 En règle générale, la lecture de fichiers externes par un interpréteur
19 postscript ne pose pas de problème (s'il n'y a pas franchissement de
20 répertoire). Pour l'écriture en revanche, cela peut poser des
21 problèmes de sécurité et il n'est pas rare que le visualisateur
22 postscript interdise l'écriture par défaut. Il faut alors le
23 configurer pour autoriser cette écriture.
25 \encadre{Par défaut, sous Windows et Linux, la protection des fichiers
26 du disque dur est activée et ne permet donc pas l'écriture sur le
27 disque. Pour désactiver cette protection, tout au moins
28 temporairement, voici les deux procédures correspondantes :
32 \item[Linux :
] le plus simple est donc d'utiliser ghostscript
33 directement, en console. Comme il n'y a rien à attendre comme image :
35 \$> gs -dNOSAFER monfichier.ps quit.ps
36 \item[Windows :
] dans le menu
\textsf{Options
}, l'option
37 \textsf{Protection des fichiers
} ne doit pas être cochée.
41 \section {Fichiers .dat (spécifique à pst-solides3d)
}
43 Dans pst-solides3d, la structure de données utilisée pour un solide
44 comporte $
4$~champs. Elle peut être stockée dans un ensemble de $
4$
47 \subsection {\' Ecriture de fichiers .dat
}
49 On utilise l'action
\Cadre{[action=writesolid
} dans
\verb+
\psSolid+, et on
50 utilise l'option
\Cadre{file
} pour spécifier le nom du fichier.
52 Par exemple, considérons le code ci-dessous~:
59 La chaîne de commandes
60 \Cadre{LaTeX->
dvips->GSview (Windows)ou gv (Linux)
}
61 permet de compiler, puis de transformer en postscript pour enfin
64 Cette dernière opération va créer
4 fichiers :
66 \item \texttt{montore-sommets.dat
} -> la liste des sommets ;
67 \item \texttt{montore-faces.dat
} -> la liste des faces ;
68 \item \texttt{montore-couleurs.dat
} -> les couleurs des faces ;
69 \item \texttt{montore-io.dat
} -> les bornes des indices des
70 faces externes et internes.
74 \subsection {Lecture de fichiers .dat
}
76 On utilise l'objet
\Cadre{[object=datfile
]} de
\verb+
\psSolid+, avec l'argument
77 \Cadre{file
} pour spécifier le nom du fichier.
80 \psSolid[object=datfile, file=montore
]
82 va permettre d'utiliser l'objet stocké dans les fichiers .dat créés au
85 \section {Fichiers .obj
}
87 Ce format n'utilise qu'un seul fichier, et permet de spécifier sommets
89 Ce sont des fichiers très utilisés dans le domaine de la
3D et qu'on
90 trouve en abondance sur internet. Par contre, nous n'utilisons qu'une
91 forme simplifiée du format obj. On veillera à supprimer tous les
92 commentaires
\texttt{\#
} du fichier original et ne conserver que les
93 sommets : ce sont les lignes qui commencent par
\texttt{v
} et les
94 faces, lignes commençant par
\texttt{f
}.
96 Les fichiers trop volumineux ne seront pas pris en compte car le
97 nombre maximal d'éléments pour un tableau
\texttt{postscript
} est
98 65535. Donc il faut que le nombre de sommets soit inférieur à
21845.
100 \subsection {\' Ecriture de fichiers .obj
}
102 On utilise l'action
\Cadre{[action=writeobj
} dans
\verb+
\psSolid+, et on
103 utilise l'option
\Cadre{file
} pour spécifier le nom du fichier.
105 Par exemple, le code ci-dessous~:
107 \psSolid[object=tore,
111 produira le fichier
\textsl{montore.obj
} (après compilation et
112 visualisation du .ps produit).
114 \subsection {Lecture de fichiers .obj
}
116 On utilise l'objet
\Cadre{[object=objfile
} de
\verb+
\psSolid+, avec l'argument
117 \Cadre{file
} pour spécifier le nom du fichier.
120 \psSolid[object=objfile, file=montore
]
122 va permettre d'utiliser l'objet stocké dans les fichiers .obj créés au
123 paragraphe précédent.
125 \begin{LTXexample
}[width=
6cm
]
126 \psset{viewpoint=
20 15 10 rtp2xyz,Decran=
20}
127 \begin{pspicture
}(-
3,-
4)(
3,
3)
128 \psframe*
[linecolor=cyan!
50](-
3,-
4)(
1,
3)
129 \psSolid[object=objfile,
135 \section {Fichiers .off
}
137 Nous n'utilisons qu'une forme simplifiée du format off. En
138 particulier, les fichiers ne doivent comporter que des entrées
139 \verb+v+ ou
\verb+f+.
141 Ce format n'utilise qu'un seul fichier, et permet de spécifier sommets
144 \subsection {\' Ecriture de fichiers .off
}
146 On utilise l'action
\Cadre{[action=writeoff
]} dans
\verb+
\psSolid+, et on
147 utilise l'option
\Cadre{file
} pour spécifier le nom du fichier.
149 Par exemple, le code ci-dessous~:
151 \psSolid[object=tore,
155 produira le fichier
\textsl{montore.off
} (après compilation et
156 visualisation du .ps produit).
158 \subsection {Lecture de fichiers .off
}
160 On utilise l'objet
\Cadre{[object=offfile
} de
\verb+
\psSolid+, avec l'argument
161 \Cadre{file
} pour spécifier le nom du fichier.
164 \psSolid[object=offfile, file=montore
]
166 va permettre d'utiliser l'objet stocké dans les fichiers .off créés au
167 paragraphe précédent.