summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-solides3d/doc/par-datfile.tex
blob: e47ecc492a43f9af927cab197ef0617d225e3eae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169

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.