1 \def\grille{% quadrillage du plan Oxy
6 \pspolygon*
[linecolor=gray!
20](S1)(S2)(S3)(S4)
7 \multido{\ix=-
5+
1}{11}{%
8 \psPoint(
\ix\space,-
5,
0)
{A
}
9 \psPoint(
\ix\space,
5,
0)
{B
}
11 \multido{\iy=-
5+
1}{11}{%
12 \psPoint(-
5,
\iy\space,
0)
{A
}
13 \psPoint(
5,
\iy\space,
0)
{B
}
19 \psline[arrowsize=
0.3,arrowinset=
0.2,linecolor=blue
]{->
}(O)(X)
20 \psline[arrowsize=
0.3,arrowinset=
0.2,linecolor=blue
]{->
}(O)(Y)
21 \psline[arrowsize=
0.3,arrowinset=
0.2,linecolor=blue
]{->
}(O)(Z)
22 \uput[r
](X)
{\textcolor{blue
}{$x$
}}\uput[u
](Y)
{\textcolor{blue
}{$y$
}}%
23 \uput[r
](Z)
{\textcolor{blue
}{$z$
}}\uput[u
](O)
{\textcolor{blue
}{$O$
}}}
26 \section{Fusion avec le code jps
}
28 On peut également opérer la fusion de solides en passant directement
30 Le calcul des parties cachées est effectué par les routines du code
31 \texttt{PostScript
} du fichier
\texttt{solides.pro
}, mais les lignes
32 de code sont ``encapsulées'' dans un environnement
\texttt{pspicture
}
33 grâce à la commande
\verb+
\codejps{code ps
}+.
35 \subsection{Le code
\texttt{jps
}}
37 \subsubsection{Le choix de l'objet
}
40 \item \textsf{[section
] n newanneau
} : choix de l'anneau cylindrique défini par sa section, coordonnées des sommets dans le plan $Oyz$.
41 \item \textsf{2\textvisiblespace 1.5\textvisiblespace 6\textvisiblespace [4\textvisiblespace 16]\textvisiblespace newcylindre
} : choix du cylindre vertical avec comme caractéristiques :
43 \item \texttt{rayon=
1.5} ;
44 \item \texttt{z0=
2} est la position du centre de la base inférieure sur l'axe $
\mathsf{Oz
}$ ;
45 \item \texttt{z1=
6} est la position du centre de la base supérieure sur l'axe $
\mathsf{Oz
}$ ;
46 \item \texttt{[4 16]} : le cylindre est découpé verticalement en
4 morceaux et horizontalement en
16 secteurs.
50 \subsubsection{Les transformations
}
53 \item \texttt{\
{-
1\textvisiblespace 2\textvisiblespace 5\textvisiblespace translatepoint3d\
} solidtransform
} : l'objet préalablement sélectionné subit une translation au point de coordonnées $
\mathsf{(x=-
1,y=
2,z=
5)
}$.
54 \item \texttt{\
{90\textvisiblespace 0\textvisiblespace 45\textvisiblespace rotateOpoint3d\
} solidtransform
} : l'objet préalablement sélectionné subit une rotation autour des axes $
\mathsf{(Ox,Oy,Oz)
}$, dans cet ordre,
55 de
90$^
\mathsf{o
}$ autour de $
\mathsf{(Ox)
}$ suivie d'une rotation de
45$^
\mathsf{o
}$ autour de $
\mathsf{(Oz)
}$.
58 \subsubsection{Le choix de la couleur de l'objet
}
61 \item dup (jaune) outputcolors : l'objet de couleur jaune éclairé en lumière blanche.
63 \subsubsection{La fusion des objets
}
65 \item Elle se fait avec l'instruction
\texttt{solidfuz
}.
68 \subsubsection{Le dessin des objets
}
70 \item Le tracé a trois options :
72 \item \texttt{drawsolid
} : tracé des arêtes uniquement, les arêtes cachées sont en pointillés ;
73 \item \texttt{drawsolid*
} : tracé et remplissage des solides dans l'ordre de leur programmation (option peu intéressante à priori), avec le dessin des arêtes cachées
75 \item \texttt{drawsolid**
} : tracé et remplissage des solides avec l'algorithme du peintre : seules les parties vues par l'observateur
80 \psset{lightsrc=
50 -
50 50,viewpoint=
40 16 32 rtp2xyz,Decran=
40}
82 \begin{minipage
}{0.3\linewidth}
83 \begin{pspicture
}(-
6,-
5)(
6,
7)
84 \psframe*
[linecolor=gray!
40](-
6,-
5)(
6,
7)
88 -
6 1.5 6 [4 16] newcylindre
89 dup (jaune) outputcolors
93 [4 -
1 4 1 3 1 3 -
1] 24 newanneau
94 {0 0 -
1 translatepoint3d
} solidtransform
95 dup (orange) outputcolors
103 \begin{minipage
}{0.3\linewidth}
104 \begin{pspicture
}(-
6,-
5)(
6,
7)
105 \psframe*
[linecolor=gray!
40](-
6,-
5)(
6,
7)
109 -
6 1.5 6 [4 16] newcylindre
110 dup (jaune) outputcolors
114 [4 -
1 4 1 3 1 3 -
1] 24 newanneau
115 {0 0 -
1 translatepoint3d
} solidtransform
116 dup (orange) outputcolors
124 \begin{minipage
}{0.3\linewidth}
125 \begin{pspicture
}(-
6,-
5)(
6,
7)
126 \psframe*
[linecolor=gray!
40](-
6,-
5)(
6,
7)
130 -
6 1.5 6 [4 16] newcylindre
131 dup (jaune) outputcolors
135 [4 -
1 4 1 3 1 3 -
1] 24 newanneau
136 {0 0 -
1 translatepoint3d
} solidtransform
137 dup (orange) outputcolors
144 \psline[arrowsize=
0.3,arrowinset=
0.2]{->
}(Z')(Z)
149 \lstset{language=PostScript
}
151 \psset{lightsrc=
50 -
50 50,viewpoint=
50 20 50 rtp2xyz,Decran=
50}
152 \begin{pspicture
}(-
6,-
2)(
6,
8)
157 -
6 1.5 6 [4 16] newcylindre
158 dup (jaune) outputcolors
162 [4 -
1 4 1 3 1 3 -
1] 24 newanneau
163 {0 0 -
1 translatepoint3d
} solidtransform
164 dup (orange) outputcolors
174 \subsection{Un ion chlorure
}
176 \begin{minipage
}{6cm
}
177 \setlength{\columnseprule}{1pt
}
178 \begin{pspicture
}(-
3,-
4)(
3,
4)
179 \psset{lightsrc=
100 -
50 -
10,lightintensity=
3,viewpoint=
200 20 10 rtp2xyz,Decran=
20}
180 \psframe(-
2.5,-
2.5)(
2.5,
2.5)
181 {\psset{linewidth=
0.5\pslinewidth}
183 /Cl
{9.02 [18 16] newsphere
184 {-
90 0 0 rotateOpoint3d
} solidtransform
185 dup (Green) outputcolors
} def
186 /Cl1
{ Cl
{10.25 10.25 10.25 translatepoint3d
} solidtransform
} def
187 /Cl2
{ Cl
{10.25 -
10.25 10.25 translatepoint3d
} solidtransform
} def
188 /Cl3
{ Cl
{-
10.25 -
10.25 10.25 translatepoint3d
} solidtransform
} def
189 /Cl4
{ Cl
{-
10.25 10.25 10.25 translatepoint3d
} solidtransform
} def
190 /Cl5
{ Cl
{10.25 10.25 -
10.25 translatepoint3d
} solidtransform
} def
191 /Cl6
{ Cl
{10.25 -
10.25 -
10.25 translatepoint3d
} solidtransform
} def
192 /Cl7
{ Cl
{-
10.25 -
10.25 -
10.25 translatepoint3d
} solidtransform
} def
193 /Cl8
{ Cl
{-
10.25 10.25 -
10.25 translatepoint3d
} solidtransform
} def
194 /Cs
{8.38 [18 16] newsphere
195 dup (White) outputcolors
} def
197 /Cl12
{ Cl1 Cl2 solidfuz
} def
198 /Cl123
{ Cl12 Cl3 solidfuz
} def
199 /Cl1234
{ Cl123 Cl4 solidfuz
} def
200 /Cl12345
{ Cl1234 Cl5 solidfuz
} def
201 /Cl123456
{ Cl12345 Cl6 solidfuz
} def
202 /Cl1234567
{ Cl123456 Cl7 solidfuz
} def
203 /Cl12345678
{ Cl1234567 Cl8 solidfuz
} def
204 /C_Cs
{ Cl12345678 Cs solidfuz
} def
206 %\psSolid[object=cube,a=20.5,action=draw,linestyle=dashed]%
208 \psPoint(
10.25,
10.25,
10.25)
{Cl1
}
209 \psPoint(
10.25,-
10.25,
10.25)
{Cl2
}
210 \psPoint(-
10.25,-
10.25,
10.25)
{Cl3
}
211 \psPoint(-
10.25,
10.25,
10.25)
{Cl4
}
212 \psPoint(
10.25,
10.25,-
10.25)
{Cl5
}
213 \psPoint(
10.25,-
10.25,-
10.25)
{Cl6
}
214 \psPoint(-
10.25,-
10.25,-
10.25)
{Cl7
}
215 \psPoint(-
10.25,
10.25,-
10.25)
{Cl8
}
216 \pspolygon[linestyle=dashed
](Cl1)(Cl2)(Cl3)(Cl4)
217 \pspolygon[linestyle=dashed
](Cl5)(Cl6)(Cl7)(Cl8)
218 \psline[linestyle=dashed
](Cl2)(Cl6)
219 \psline[linestyle=dashed
](Cl3)(Cl7)
220 \psline[linestyle=dashed
](Cl1)(Cl5)
221 \psline[linestyle=dashed
](Cl4)(Cl8)
222 \pcline[offset=
0.5]{<->
}(Cl2)(Cl1)
224 \pcline[offset=
0.5]{<->
}(Cl6)(Cl2)
229 \begin{minipage
}{14cm
}
233 /Cl
{9.02 [12 8] newsphere
234 {-
90 0 0 rotateOpoint3d
} solidtransform
235 dup (Green) outputcolors
} def
236 /Cl1
{ Cl
{10.25 10.25 10.25 translatepoint3d
} solidtransform
} def
237 /Cl2
{ Cl
{10.25 -
10.25 10.25 translatepoint3d
} solidtransform
} def
238 /Cl3
{ Cl
{-
10.25 -
10.25 10.25 translatepoint3d
} solidtransform
} def
239 /Cl4
{ Cl
{-
10.25 10.25 10.25 translatepoint3d
} solidtransform
} def
240 /Cl5
{ Cl
{10.25 10.25 -
10.25 translatepoint3d
} solidtransform
} def
241 /Cl6
{ Cl
{10.25 -
10.25 -
10.25 translatepoint3d
} solidtransform
} def
242 /Cl7
{ Cl
{-
10.25 -
10.25 -
10.25 translatepoint3d
} solidtransform
} def
243 /Cl8
{ Cl
{-
10.25 10.25 -
10.25 translatepoint3d
} solidtransform
} def
244 /Cs
{8.38 [12 8] newsphere
245 dup (White) outputcolors
} def
246 /Cl12
{ Cl1 Cl2 solidfuz
} def
247 /Cl123
{ Cl12 Cl3 solidfuz
} def
248 /Cl1234
{ Cl123 Cl4 solidfuz
} def
249 /Cl12345
{ Cl1234 Cl5 solidfuz
} def
250 /Cl123456
{ Cl12345 Cl6 solidfuz
} def
251 /Cl1234567
{ Cl123456 Cl7 solidfuz
} def
252 /Cl12345678
{ Cl1234567 Cl8 solidfuz
} def
253 /C_Cs
{ Cl12345678 Cs solidfuz
} def
258 On définit l'ion chlorure $
\mathrm{Cl^-
}$ :
260 /Cl
{9.02 [12 8] newsphere
261 {-
90 0 0 rotateOpoint3d
} solidtransform
262 dup (Green) outputcolors
} def
264 que l'on recopie aux sommets du cube :
266 /Cl1
{ Cl
{10.25 10.25 10.25 translatepoint3d
} solidtransform
} def
267 /Cl2
{ Cl
{10.25 -
10.25 10.25 translatepoint3d
} solidtransform
} def
268 /Cl3
{ Cl
{-
10.25 -
10.25 10.25 translatepoint3d
} solidtransform
} def
269 /Cl4
{ Cl
{-
10.25 10.25 10.25 translatepoint3d
} solidtransform
} def
270 /Cl5
{ Cl
{10.25 10.25 -
10.25 translatepoint3d
} solidtransform
} def
271 /Cl6
{ Cl
{10.25 -
10.25 -
10.25 translatepoint3d
} solidtransform
} def
272 /Cl7
{ Cl
{-
10.25 -
10.25 -
10.25 translatepoint3d
} solidtransform
} def
273 /Cl8
{ Cl
{-
10.25 10.25 -
10.25 translatepoint3d
} solidtransform
} def
275 Puis l'ion césium $
\mathrm{Cs^+
}$, placé au centre :
277 /Cs
{8.38 [12 8] newsphere
278 dup (White) outputcolors
} def
280 Ensuite on fusionne deux par deux les différentes sphères.
285 \subsection{Un prototype de véhicule
}
287 \psset{lightsrc=
100 0 100,viewpoint=
25 10 10,Decran=
30}
288 \begin{pspicture
}(-
6,-
4)(
6,
8)
290 /m
{90 4 div
} bind def
291 /Scos
{m cos
2 m mul cos add
3 m mul cos add
} bind def
292 /Z0
{h
4 div
} bind def
293 /c
{Z0 Scos div
} bind def
294 /Z1
{Z0 c m cos mul add
} bind def
295 /Z2
{Z1 c m
2 mul cos mul add
} bind def
296 /R1
{R c m sin mul sub
} bind def
297 /R2
{R1 c m
2 mul sin mul sub
} bind def
298 /R3
{R2 c m
3 mul sin mul sub
} bind def
314 /R
2 def /r
1 def /h
1 def
316 {90 0 90 rotateOpoint3d
} solidtransform
317 {3 4 2 translatepoint3d
} solidtransform
318 dup (White) outputcolors
321 {90 0 90 rotateOpoint3d
} solidtransform
322 {-
3 4 2 translatepoint3d
} solidtransform
323 dup (White) outputcolors
327 0 0.1 6 [4 16] newcylindre
328 {90 0 90 rotateOpoint3d
} solidtransform
329 {-
3 4 2 translatepoint3d
} solidtransform
330 dup (White) outputcolors
333 roue12 axe12 solidfuz
} def
336 /R
1.5 def /r
1 def /h
1 def
338 {90 0 110 rotateOpoint3d
} solidtransform
339 {3 -
4 1.5 translatepoint3d
} solidtransform
340 dup (White) outputcolors
343 {90 0 110 rotateOpoint3d
} solidtransform
344 {-
3 -
4 1.5 translatepoint3d
} solidtransform
345 dup (White) outputcolors
349 0 0.1 6 [16 16] newcylindre
350 {90 0 90 rotateOpoint3d
} solidtransform
351 {-
3 -
4 1.5 translatepoint3d
} solidtransform
352 dup (White) outputcolors
355 roue34 axe34 solidfuz
} def
356 /roues
{roue34axes34 roue12axes solidfuz
} def
358 0 1 8 [4 16] newcylindre
359 {100 0 0 rotateOpoint3d
} solidtransform
360 {0 4 2.5 translatepoint3d
} solidtransform
361 dup (White) outputcolors
363 roues chassis solidfuz
365 \psPoint(
0,
0,
2.7)
{Z'
}
366 \psline[arrowsize=
0.3,arrowinset=
0.2,linecolor=blue
]{->
}(Z')(Z)
369 Il faut opérer en plusieurs étapes en fusionnant les solides deux par deux.
371 \item On fusionne d'abord les deux roues avant
\texttt{roue12
}:
375 /R
2 def /r
1 def /h
1 def
377 {90 0 90 rotateOpoint3d
} solidtransform
378 {3 4 2 translatepoint3d
} solidtransform
379 dup (White) outputcolors
382 {90 0 90 rotateOpoint3d
} solidtransform
383 {-
3 4 2 translatepoint3d
} solidtransform
384 dup (White) outputcolors
388 \item Puis ces deux roues et leur axe :
391 0 0.1 6 [4 16] newcylindre
392 {90 0 90 rotateOpoint3d
} solidtransform
393 {-
3 4 2 translatepoint3d
} solidtransform
394 dup (White) outputcolors
397 roue12 axe12 solidfuz
} def
399 \item On opère de même pour les roues arrière et leur axe :
403 /R
1.5 def /r
1 def /h
1 def
405 {90 0 110 rotateOpoint3d
} solidtransform
406 {3 -
4 1.5 translatepoint3d
} solidtransform
407 dup (White) outputcolors
410 {90 0 110 rotateOpoint3d
} solidtransform
411 {-
3 -
4 1.5 translatepoint3d
} solidtransform
412 dup (White) outputcolors
416 0 0.1 6 [16 16] newcylindre
417 {90 0 90 rotateOpoint3d
} solidtransform
418 {-
3 -
4 1.5 translatepoint3d
} solidtransform
419 dup (White) outputcolors
422 roue34 axe34 solidfuz
} def
423 /roues
{roue34axes34 roue12axes solidfuz
} def
426 \item La dernière étape consiste à fusionner les deux solides ainsi
427 obtenus avec le semblant de chassis~:
430 0 1 8 [4 16] newcylindre
431 {100 0 0 rotateOpoint3d
} solidtransform
432 {0 4 2.5 translatepoint3d
} solidtransform
433 dup (White) outputcolors
435 roues chassis solidfuz
441 \subsection{Une roue ou bien une station spatiale !
}
444 \begin{pspicture
}(-
6,-
5)(
6,
6)
445 \psset{lightsrc=
50 -
50 50,viewpoint=
40 50 60,Decran=
60,linewidth=
0.5\pslinewidth}
446 %\psframe*[linecolor=black](-6,-5)(6,5)
449 1 0.2 6 [4 16] newcylindre
450 {90 0 0 rotateOpoint3d
} solidtransform
451 dup (White) outputcolors
456 1 0.2 6 [4 16] newcylindre
457 {90 0 angle rotateOpoint3d
} solidtransform
458 dup (White) outputcolors
460 /rayons
{rayon0 rayon1 solidfuz
} def
463 /moyeu
{ -
2 1 2 [4 10] newcylindre dup (jaune) outputcolors
} def
464 /rayonsmoyeu
{rayons moyeu solidfuz
} def
465 /pneu
{2 7 [18 36] newtore dup (White) outputcolors
} def
466 /ROUE
{pneu rayonsmoyeu solidfuz
} def
470 On définit d'abord le premier rayon :
473 1 0.2 6 [4 16] newcylindre
474 {90 0 0 rotateOpoint3d
} solidtransform
475 dup (White) outputcolors
478 Puis dans une boucle on fusionne tous les rayons de la roue :
483 1 0.2 6 [4 16] newcylindre
484 {90 0 angle rotateOpoint3d
} solidtransform
485 dup (White) outputcolors
487 /rayons
{rayon0 rayon1 solidfuz
} def
491 Ensuite, on dessine le moyeu et la circonférence (pneu) de la roue pour
492 enfin fusionner l'ensemble :
494 /moyeu
{ -
0.5 1 0.5 [4 10] newcylindre dup (White) outputcolors
} def
495 /rayonsmoyeu
{rayons moyeu solidfuz
} def
496 /pneu
{2 7 [18 36] newtore dup (jaune) outputcolors
} def
497 /ROUE
{pneu rayonsmoyeu solidfuz
} def
502 \subsection{Intersection de deux cylindres
}
505 \begin{pspicture
}(-
6,-
3)(
6,
3)
506 \psset{lightsrc=
50 -
50 50,viewpoint=
100 -
30
507 40,Decran=
100,linewidth=
0.5\pslinewidth, unit=
0.75}
508 %\psframe*[linecolor=black](-6,-5)(6,5)
511 -
6 2 6 [36 36] newcylindrecreux
%newcylindre
512 {90 0 0 rotateOpoint3d
} solidtransform
513 dup (White) (White) inoutputcolors
516 -
6 2 6 [36 36] newcylindrecreux
% newcylindre
517 {90 0 90 rotateOpoint3d
} solidtransform
518 dup (White) (White) inoutputcolors
520 /UnionCylindres
{cylindre1 cylindre2 solidfuz
} def
521 UnionCylindres drawsolid**
}
527 -
6 2 6 [36 36] newcylindrecreux
%newcylindre
528 {90 0 0 rotateOpoint3d
} solidtransform
529 dup (White) (White) inoutputcolors
532 -
6 2 6 [36 36] newcylindrecreux
% newcylindre
533 {90 0 90 rotateOpoint3d
} solidtransform
534 dup (White) (White) inoutputcolors
536 /UnionCylindres
{cylindre1 cylindre2 solidfuz
} def
537 UnionCylindres drawsolid**
}
542 \subsection{Intersection d'une sphère et d'un cylindre
}
544 Dans cette partie on dessine en utilisant
545 \verb+
\psSolid[object=courbe
]+ le contour de l'intersection.
547 \begin{minipage
}{0.4\linewidth}
548 \psset{unit=
0.5,lightsrc=
50 -
50 50,viewpoint=
100 0 0 rtp2xyz,Decran=
110,linewidth=
0.5\pslinewidth}
549 \begin{pspicture
}(-
5,-
6)(
5,
6)
550 \defFunction{F
}(t)
{t cos dup mul
5 mul
}{t cos t sin mul
5 mul
}{t sin
5 mul
}
553 -
5 2.5 5 [36 36] newcylindre
554 {2.5 0 0 translatepoint3d
} solidtransform
555 dup (White) outputcolors
559 dup (White) outputcolors
561 /CS
{cylindre1 sphere1 solidfuz
} def
563 \psSolid[object=courbe,r=
0,
566 linecolor=red,linewidth=
4\pslinewidth]
569 %% \parametricplot[linecolor=red,linewidth=2\pslinewidth]{0}{360}{%
570 %% \tx@optionssolides
572 %% t cos dup mul 5 mul % x
573 %% t cos t sin mul 5 mul % y
575 %% 3dto2d cm_1 exch cm_1 exch
580 \begin{minipage
}{0.55\linewidth}
584 -
5 2.5 5 [36 36] newcylindre
585 {2.5 0 0 translatepoint3d
} solidtransform
586 dup (White) outputcolors
590 dup (White) outputcolors
592 /CS
{cylindre1 sphere1 solidfuz
} def
595 \psSolid[object=courbe,r=
0,
598 linecolor=red,linewidth=
4\pslinewidth]
603 \subsection{Réunion de deux anneaux
}
605 \begin{minipage
}{0.5\linewidth}
606 \begin{pspicture
}(-
5,-
4)(
3,
3)
607 \psset{lightsrc=
50 50 50,viewpoint=
40 50 60,Decran=
30,unit=
0.85}
610 /anneau1
{1 7 [12 36] newtore
611 {0 0 0 translatepoint3d
} solidtransform
612 dup (White) outputcolors
} def
613 /anneau2
{1 7 [12 36] newtore
614 {90 0 0 rotateOpoint3d
} solidtransform
615 {7 0 0 translatepoint3d
} solidtransform
616 dup (White) outputcolors
} def
617 /collier
{anneau1 anneau2 solidfuz
} def
622 \begin{minipage
}{0.59\linewidth}
625 /anneau1
{1 7 [9 18] newtore
626 {0 0 0 translatepoint3d
} solidtransform
627 dup (White) outputcolors
} def
628 /anneau2
{1 7 [9 18] newtore
629 {90 0 0 rotateOpoint3d
} solidtransform
630 {7 0 0 translatepoint3d
} solidtransform
631 dup (White) outputcolors
} def
632 /collier
{anneau1 anneau2 solidfuz
} def
639 \subsection{La molécule de méthane : modèle en bois
}
641 \begin{minipage
}{0.42\linewidth}
642 \begin{pspicture
}(-
3.5,-
4)(
3.2,
5)
643 \psset{lightsrc=
50 50 10,lightintensity=
2,viewpoint=
100 50 20 rtp2xyz,
645 \psset{linecolor=
{[cmyk
]{0,
0.72,
1,
0.45}},linewidth=
0.5\pslinewidth,
647 \psframe[fillstyle=solid,fillcolor=green!
20](-
4,-
4)(
3.2,
5)
648 \pstVerb{/hetre
{0.764 0.6 0.204 setrgbcolor
} def
649 /chene
{0.568 0.427 0.086 setrgbcolor
} def
650 /bois
{0.956 0.921 0.65 setrgbcolor
} def
655 {-
90 0 0 rotateOpoint3d
} solidtransform
656 {0 10.93 0 translatepoint3d
} solidtransform
657 dup (hetre) outputcolors
} def
659 0 0.25 10 [12 10] newcylindre
660 {-
90 0 0 rotateOpoint3d
} solidtransform
661 dup (bois) outputcolors
663 /HL1
{ H1 L1 solidfuz
} def
664 /HL2
{ HL1
{0 0 -
109.5 rotateOpoint3d
} solidtransform
} def
665 /HL3
{ HL2
{0 -
120 0 rotateOpoint3d
} solidtransform
} def
666 /HL4
{ HL2
{0 120 0 rotateOpoint3d
} solidtransform
} def
667 /C
{3 [18 16] newsphere
668 {90 0 0 rotateOpoint3d
} solidtransform
669 dup (chene) outputcolors
} def
670 /HL12
{ HL1 HL2 solidfuz
} def
671 /HL123
{ HL12 HL3 solidfuz
} def
672 /HL1234
{ HL123 HL4 solidfuz
} def
673 /methane
{ HL1234 C solidfuz
} def
678 \begin{minipage
}{0.69\linewidth}
680 \pstVerb{/hetre
{0.764 0.6 0.204 setrgbcolor
} def
681 /chene
{0.568 0.427 0.086 setrgbcolor
} def
682 /bois
{0.956 0.921 0.65 setrgbcolor
} def
687 {-
90 0 0 rotateOpoint3d
} solidtransform
688 {0 10.93 0 translatepoint3d
} solidtransform
689 dup (hetre) outputcolors
} def
691 0 0.25 10 [12 10] newcylindre
692 {-
90 0 0 rotateOpoint3d
} solidtransform
693 dup (bois) outputcolors
695 /HL1
{ H1 L1 solidfuz
} def
697 HL1
{0 0 -
109.5 rotateOpoint3d
} solidtransform
700 HL2
{0 -
120 0 rotateOpoint3d
} solidtransform
} def
702 HL2
{0 120 0 rotateOpoint3d
} solidtransform
} def
703 /C
{3 [18 16] newsphere
704 {90 0 0 rotateOpoint3d
} solidtransform
705 dup (chene) outputcolors
} def
706 /HL12
{ HL1 HL2 solidfuz
} def
707 /HL123
{ HL12 HL3 solidfuz
} def
708 /HL1234
{ HL123 HL4 solidfuz
} def
709 /methane
{ HL1234 C solidfuz
} def
715 \subsection{L'ion thiosulfate
}
716 \input \datapath S2O3
717 On définit d'abord les deux atomes de soufre placés sur l'axe $Oz$.
718 $
\mathrm{S_1
}$ est placé en $O$.
721 /Soufre1
{3.56 [20 16] newsphere
722 dup (Yellow) outputcolors
} def
723 /Soufre2
{3.56 [20 16] newsphere
724 {0 0.000 20.10 translatepoint3d
} solidtransform
725 dup (Yellow) outputcolors
} def
727 Puis la liaison simple
\textsf{S-O
} avec la convention suivante : c'est un
728 cylindre avec une moitié rouge -celle qui est liée à
\textsf{O
}, et l'autre
729 jaune -celle du côté de
\textsf{S
}.
732 7.5 0.5 15 [10 10] newcylindre
733 dup (Red) outputcolors
736 0 0.5 7.5 [10 10] newcylindre
737 dup (Yellow) outputcolors
739 /Liaison
{LiaisonR LiaisonY solidfuz
} def
741 L'atome d'oxygène, sa liaison, puis la mise en position de l'ensemble :
743 /Ox
{2.17 [20 16] newsphere
744 {0 0 15 translatepoint3d
} solidtransform
745 dup (Red) outputcolors
} def
746 /LO
{ Liaison Ox solidfuz
} def
747 /LO1
{ LO
{0 -
109.5 0 rotateOpoint3d
} solidtransform
} def
748 /LOx1
{ LO1
{0 0 120 rotateOpoint3d
} solidtransform
} def
749 % fin liaison simple S-O
751 La liaison double double
\textsf{S=O
}, on se sert de la liaison simple
752 définie précédemment et on la duplique en la décalant suivant l'axe $Ox$ de
756 /LiaisonD1
{Liaison
{-
0.75 0 0 translatepoint3d
} solidtransform
} def
757 /LiaisonD2
{Liaison
{0.75 0 0 translatepoint3d
} solidtransform
} def
758 /LiaisonDD
{ LiaisonD1 LiaisonD2 solidfuz
} def
760 On lie cette liaison double avec l'atome d'
\textsf{O
} :
762 /LiaisonDOx
{LiaisonDD Ox solidfuz
} def
764 et par deux rotations successives on positionne les deux liaisons
767 /LiaisonDOx1
{LiaisonDOx
{0 -
109.5 0 rotateOpoint3d
} solidtransform
} def
768 /LiaisonDOx2
{LiaisonDOx1
{0 0 -
120 rotateOpoint3d
} solidtransform
} def
770 L'étape suivante consiste à fusionner ces deux liaisons :
772 /LO12
{ LiaisonDOx1 LiaisonDOx2 solidfuz
} def
773 /LO123
{LO12 LOx1 solidfuz
} def
775 On passe ensuite à la liaison simple
\textsf{S-S
} :
778 /L4
{ 0 0.5 20.10 [16 10] newcylindre
779 dup (Yellow) outputcolors
782 Que l'on fusionne avec les deux atomes
\textsf{S-S
} :
784 /S1L4
{ Soufre1 L4 solidfuz
} def
785 /S1S2L4
{ S1L4 Soufre2 solidfuz
} def
787 La dernière étape consiste à fusionner
\textsf{S-S
} et les trois
\textsf{O
} déjà munis de leur liaisons :
789 /S2O3
{ S1S2L4 LO123 solidfuz
} def