Initialisation du projet pst-solides3d.git (SVN revision 142)
[pst-solides3d.git] / doc / .svn / text-base / par-nommersolide.tex.svn-base
1 \section {Nommer un solide}
2
3 Pour certaines utilisations, on a besoin de stocker un solide en
4 mémoire afin de pouvoir y faire référence par la suite. Pour ce faire
5 on dispose du booléen \verb+solidmemory+, qui permet la transmission
6 d'une variable tout au long de la scène.
7
8 En revanche, l'activation de ce booléen désactive le dessin immédiat
9 des macros \verb+\psSolid+, \verb+\psSurface+ et
10 \verb+\psProjection+. Pour obtenir ce dessin, on utilise la macro
11 \verb+\composeSolid+ à la fin de la scène.
12
13 Lorsque l'activation \Cadre{$\backslash $psset\{solidmemory\}} est faite, on peut
14 alors utiliser l'option \Cadre{[name=...]} de la macro \verb+\psSolid+.
15
16 Dans l'exemple ci-dessous, on construit un solide coloré, que l'on
17 sauvagarde sous le nom $A1$. On le dessine ensuite, après coup, en
18 utilisant l'objet \Cadre{[object=load]} avec le paramètre
19 \Cadre{[load=$name$]}. 
20
21 \`A noter que l'instruction \verb+linecolor=blue+ utilisée lors de la
22 construction de notre cube n'a pas d'impact sur le dessin~: seule la
23 structure du solide a été sauvegardé (sommets, faces, couleurs des
24 faces), pas l'épaisseur de la ligne de tracé ou sa couleur ou la
25 position de la source lumineuse. C'est au moment du dessin du solide
26 considéré qu'il faut régler ces paramètres.
27
28 Enfin, on remarquera l'utilisation de l'option
29 \Cadre{[deactivatecolor]} qui permet au cube de garder sa couleur
30 rouge d'origine (sinon les couleurs par défaut auraient repris le
31 dessus dans l'objet \verb+load+).
32
33 \begin{multicols}{2}
34 \bgroup
35 \psset{unit=0.75}
36 \psset{lightsrc=10 0 10,viewpoint=50 -20 10 rtp2xyz,Decran=50}
37 \begin{pspicture*}(-4,-4)(5,4)
38 \psframe(-4,-4)(5,4)
39 \psset{solidmemory}
40 \psSolid[object=cube,
41       linecolor=blue,
42       a=4,fillcolor=red!50,
43       ngrid=3,
44       action=none,
45       name=A,
46       ](0,0,0)
47 \psSolid[object=load,
48    deactivatecolor,
49    load=A]
50 \composeSolid
51 \end{pspicture*}
52 \egroup
53
54 \columnbreak
55
56 \begin{verbatim}
57 \psset{solidmemory}
58 \psSolid[object=cube,
59       linecolor=blue,
60       a=4,fillcolor=red!50,
61       ngrid=3,
62       action=none,
63       name=A,
64       ](0,0,0)
65 \psSolid[object=load,
66    deactivatecolor,
67    load=A]
68 \composeSolid
69 \end{verbatim}
70 \end{multicols}
71
72
73 \llap {\dbend } 
74 Avec l'option \verb+solidmemory+, les noms de variables sont
75 relativement bien encapsulés, et il n'y a pas de conflit avec les
76 variables de dvips par exemple. Il reste par contre le risque de
77 surcharge des noms utilisés par \verb+solides.pro+. On peut utiliser
78 tous les noms de variables à un seul carctère alphabétique, mais il
79 faut éviter d'utiliser des noms comme 
80 \verb+vecteur+,
81 \verb+distance+,
82 \verb+droite+, etc\dots qui sont déjà définis par le package.

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.