diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-solides3d/doc-en/source/par-fusionjps-en.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-solides3d/doc-en/source/par-fusionjps-en.tex | 740 |
1 files changed, 0 insertions, 740 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-solides3d/doc-en/source/par-fusionjps-en.tex b/Master/texmf-dist/doc/generic/pst-solides3d/doc-en/source/par-fusionjps-en.tex deleted file mode 100644 index 34a4e05050f..00000000000 --- a/Master/texmf-dist/doc/generic/pst-solides3d/doc-en/source/par-fusionjps-en.tex +++ /dev/null @@ -1,740 +0,0 @@ -\def\grille{% quadrillage du plan Oxy - \psPoint(-5,-5,0){S1} - \psPoint(-5,5,0){S2} - \psPoint(5,5,0){S3} - \psPoint(5,-5,0){S4} -\pspolygon*[linecolor=gray!20](S1)(S2)(S3)(S4) -\multido{\ix=-5+1}{11}{% - \psPoint(\ix\space,-5,0){A} - \psPoint(\ix\space,5,0){B} - \psline(A)(B)} -\multido{\iy=-5+1}{11}{% - \psPoint(-5,\iy\space,0){A} - \psPoint(5,\iy\space,0){B} - \psline(A)(B)} - \psPoint(0,0,0){O} - \psPoint(5,0,0){X} - \psPoint(0,5,0){Y} - \psPoint(0,0,8){Z} - \psline[arrowsize=0.3,arrowinset=0.2,linecolor=blue]{->}(O)(X) - \psline[arrowsize=0.3,arrowinset=0.2,linecolor=blue]{->}(O)(Y) - \psline[arrowsize=0.3,arrowinset=0.2,linecolor=blue]{->}(O)(Z) - \uput[r](X){\textcolor{blue}{$x$}}\uput[u](Y){\textcolor{blue}{$y$}}% - \uput[r](Z){\textcolor{blue}{$z$}}\uput[u](O){\textcolor{blue}{$O$}}} - - -\section{Fusing with \textit{jps code}} - -We can also \Index{fuse solids} by passing the code directly using -\textit{jps code}. The calculation of the hidden parts is carried -out by the PostScript routines of the \texttt{solides.pro} file, -but the lines of code are ``encapsulated'' within a -\texttt{pspicture} environment thanks to the command -\verb+\codejps{ps code}+. - -\subsection{Using \textit{jps code}} - -\subsubsection{The choice of object} - -\begin{itemize} - \item \texttt{[section] n newanneau}: choice of a cylindrical ring defined by - the coordinates of the vertices of its intersection with the plane $Oyz$. - \item \texttt{2 1.5 6 [4 16] newcylindre}: choice of a vertical cylinder -with the following parameters: - \begin{itemize} - \item \texttt{z0=2}: the position of the base centre on the axis $Oz$; - \item \texttt{radius=1.5}: radius of the cylinder; - \item \texttt{z1=6}: the position of the top centre on the - axis $Oz$; - \item \texttt{[4 16]}: the cylinder is sliced horizontally into 4 pieces and -vertically into 16 sectors. - \end{itemize} - \end{itemize} - -\subsubsection{The transformations} - -\begin{itemize} - \item \texttt{\{-1 2 5 translatepoint3d\} solidtransform}: the object -previously chosen is translated to the point with the -coordinates $(x=-1,y=2,z=5)$. - \item \texttt{\{90 0 45 rotateOpoint3d\} solidtransform}: the object -previously chosen is rotated around the axes $(Ox,Oy,Oz)$, in -this order: rotation of 90$^\mathsf{o}$ about $(Ox)$ followed -by a rotation of 45$^\mathsf{o}$ about $(Oz)$. -\end{itemize} - -\subsubsection{The choice of object colour} - -\begin{itemize} - \item dup (yellow) outputcolors: a yellow object illuminated in - white light. -\end{itemize} - -\subsubsection{Fusing objects} - -\begin{itemize} - \item The \Index{fusion} is finally made with the instruction \texttt{solidfuz}. -\end{itemize} - -\subsubsection{Designing objects} - -\begin{itemize} - \item There are three drawing options: - \begin{itemize} - \item \texttt{drawsolid}: only draw edges; hidden edges are drawn dashed; - \item \texttt{drawsolid*}: draw and fill solids in their coded order (not - a very interesting option at first glance); hidden edges are drawn dashed; - \item \texttt{drawsolid**}: draw and fill solids with the - painting algorithm; only those parts seen by the observer are - drawn. - \end{itemize} -\end{itemize} -\begin{center} -\psset{lightsrc=50 -50 50,viewpoint=40 16 32 rtp2xyz,Decran=40} -\psset{unit=0.4} -\begin{minipage}{0.3\linewidth} -\begin{pspicture}(-6,-5)(6,7) -\psframe*[linecolor=gray!40](-6,-5)(6,7) -\codejps{ -% solide 1 - /tour { - -6 1.5 6 [4 16] newcylindre - dup (jaune) outputcolors - } def -% solide 2 - /anneau { - [4 -1 4 1 3 1 3 -1] 24 newanneau - {0 0 -1 translatepoint3d} solidtransform - dup (orange) outputcolors - } def -% fusion - tour anneau solidfuz - drawsolid} -\end{pspicture} -\end{minipage} -\hfill -\begin{minipage}{0.3\linewidth} -\begin{pspicture}(-6,-5)(6,7) -\psframe*[linecolor=gray!40](-6,-5)(6,7) -\codejps{ -% solide 1 - /tour { - -6 1.5 6 [4 16] newcylindre - dup (jaune) outputcolors - } def -% solide 2 - /anneau { - [4 -1 4 1 3 1 3 -1] 24 newanneau - {0 0 -1 translatepoint3d} solidtransform - dup (orange) outputcolors - } def -% fusion - tour anneau solidfuz - drawsolid*} -\end{pspicture} -\end{minipage} -\hfill -\begin{minipage}{0.3\linewidth} -\begin{pspicture}(-6,-5)(6,7) -\psframe*[linecolor=gray!40](-6,-5)(6,7) -\codejps{ -% solide 1 - /tour { - -6 1.5 6 [4 16] newcylindre - dup (jaune) outputcolors - } def -% solide 2 - /anneau { - [4 -1 4 1 3 1 3 -1] 24 newanneau - {0 0 -1 translatepoint3d} solidtransform - dup (orange) outputcolors - } def -% fusion - tour anneau solidfuz - drawsolid**} -\psPoint(0,0,8){Z} -\psPoint(0,0,6){Z'} -\psline[arrowsize=0.3,arrowinset=0.2]{->}(Z')(Z) -\uput[u](Z){$z$} -\end{pspicture} -\end{minipage} -\end{center} - -\begin{verbatim} -\psset{lightsrc=50 -50 50,viewpoint=50 20 50 rtp2xyz,Decran=50} -\begin{pspicture}(-6,-2)(6,8) -\psframe(-6,-2)(6,8) -\codejps{ -% solide 1 - /tour{ - -6 1.5 6 [4 16] newcylindre - dup (jaune) outputcolors - } def -% solide 2 - /anneau{ - [4 -1 4 1 3 1 3 -1] 24 newanneau - {0 0 -1 translatepoint3d} solidtransform - dup (orange) outputcolors - } def -% fusion - tour anneau solidfuz - drawsolid**} -\end{pspicture} -\end{verbatim} - -\newpage - -\subsection{A \Index{chloride ion}} -\begin{LTXexample}[width=6cm] -\begin{pspicture}(-3,-4)(3,4) -\psset{lightsrc=100 -50 -10,lightintensity=3,viewpoint=200 20 10 rtp2xyz,Decran=20} -{\psset{linewidth=0.5\pslinewidth} -\codejps{/Cl {9.02 [18 16] newsphere -{-90 0 0 rotateOpoint3d} solidtransform - dup (Green) outputcolors} def -/Cl1 { Cl {10.25 10.25 10.25 translatepoint3d} solidtransform } def -/Cl2 { Cl {10.25 -10.25 10.25 translatepoint3d} solidtransform } def -/Cl3 { Cl {-10.25 -10.25 10.25 translatepoint3d} solidtransform } def -/Cl4 { Cl {-10.25 10.25 10.25 translatepoint3d} solidtransform } def -/Cl5 { Cl {10.25 10.25 -10.25 translatepoint3d} solidtransform } def -/Cl6 { Cl {10.25 -10.25 -10.25 translatepoint3d} solidtransform } def -/Cl7 { Cl {-10.25 -10.25 -10.25 translatepoint3d} solidtransform } def -/Cl8 { Cl {-10.25 10.25 -10.25 translatepoint3d} solidtransform } def -/Cs {8.38 [18 16] newsphere - dup (White) outputcolors} def -/Cl12{ Cl1 Cl2 solidfuz} def -/Cl123{ Cl12 Cl3 solidfuz} def -/Cl1234{ Cl123 Cl4 solidfuz} def -/Cl12345{ Cl1234 Cl5 solidfuz} def -/Cl123456{ Cl12345 Cl6 solidfuz} def -/Cl1234567{ Cl123456 Cl7 solidfuz} def -/Cl12345678{ Cl1234567 Cl8 solidfuz} def -/C_Cs { Cl12345678 Cs solidfuz} def -C_Cs drawsolid**}}% -\psPoint(0,0,0){P} -\psPoint(10.25,10.25,10.25){Cl1} -\psPoint(10.25,-10.25,10.25){Cl2} -\psPoint(-10.25,-10.25,10.25){Cl3} -\psPoint(-10.25,10.25,10.25){Cl4} -\psPoint(10.25,10.25,-10.25){Cl5} -\psPoint(10.25,-10.25,-10.25){Cl6} -\psPoint(-10.25,-10.25,-10.25){Cl7} -\psPoint(-10.25,10.25,-10.25){Cl8} -\pspolygon[linestyle=dashed](Cl1)(Cl2)(Cl3)(Cl4) -\pspolygon[linestyle=dashed](Cl5)(Cl6)(Cl7)(Cl8) -\psline[linestyle=dashed](Cl2)(Cl6) -\psline[linestyle=dashed](Cl3)(Cl7) -\psline[linestyle=dashed](Cl1)(Cl5) -\psline[linestyle=dashed](Cl4)(Cl8) -\pcline[offset=0.5]{<->}(Cl2)(Cl1) -\aput{:U}{a} -\pcline[offset=0.5]{<->}(Cl6)(Cl2) -\aput{:U}{a} -\end{pspicture} -\end{LTXexample} - -We define the chloride ion $\mathrm{Cl^-}$: -\begin{verbatim} -/Cl {9.02 [12 8] newsphere - {-90 0 0 rotateOpoint3d} solidtransform - dup (Green) outputcolors} def -\end{verbatim} -which we shift to each vertex of a cube: -\begin{verbatim} -/Cl1 { Cl {10.25 10.25 10.25 translatepoint3d} solidtransform } def -/Cl2 { Cl {10.25 -10.25 10.25 translatepoint3d} solidtransform } def -/Cl3 { Cl {-10.25 -10.25 10.25 translatepoint3d} solidtransform } def -/Cl4 { Cl {-10.25 10.25 10.25 translatepoint3d} solidtransform } def -/Cl5 { Cl {10.25 10.25 -10.25 translatepoint3d} solidtransform } def -/Cl6 { Cl {10.25 -10.25 -10.25 translatepoint3d} solidtransform } def -/Cl7 { Cl {-10.25 -10.25 -10.25 translatepoint3d} solidtransform } def -/Cl8 { Cl {-10.25 10.25 -10.25 translatepoint3d} solidtransform } def -\end{verbatim} -Then a caesium ion $\mathrm{Cs^+}$ is placed in the center: -\begin{verbatim} -/Cs {8.38 [12 8] newsphere - dup (White) outputcolors} def -\end{verbatim} -Finally we fuse the separate spheres in pairs. - -\vfill - - -\subsection{A prototype of a \Index{vehicle}} -\begin{center} -\psset{lightsrc=100 0 100,viewpoint=25 10 10,Decran=30} -\begin{pspicture}(-6,-4)(6,8) -\pstVerb{/Pneu { - /m {90 4 div} bind def - /Scos {m cos 2 m mul cos add 3 m mul cos add} bind def - /Z0 {h 4 div} bind def - /c {Z0 Scos div} bind def - /Z1 {Z0 c m cos mul add} bind def - /Z2 {Z1 c m 2 mul cos mul add} bind def - /R1 {R c m sin mul sub} bind def - /R2 {R1 c m 2 mul sin mul sub} bind def - /R3 {R2 c m 3 mul sin mul sub} bind def - R h 4 div neg % 1 - R h 4 div % 2 - R1 Z1 % 3 - R2 Z2 % 4 - R3 h 2 div % 5 - r h 2 div % 6 - r h 2 div neg % 7 - R3 h 2 div neg % 8 - R2 Z2 neg % 9 - R1 Z1 neg % 10 - } def}% -\grille -\codejps{ -/roue12 { -% solide 1 - /R 2 def /r 1 def /h 1 def - [Pneu] 36 newanneau - {90 0 90 rotateOpoint3d} solidtransform - {3 4 2 translatepoint3d} solidtransform - dup (White) outputcolors -% solide 2 - [Pneu] 36 newanneau - {90 0 90 rotateOpoint3d} solidtransform - {-3 4 2 translatepoint3d} solidtransform - dup (White) outputcolors -% fusion - solidfuz } def -/axe12{ -0 0.1 6 [4 16] newcylindre -{90 0 90 rotateOpoint3d} solidtransform -{-3 4 2 translatepoint3d} solidtransform -dup (White) outputcolors -} def -/roue12axes { -roue12 axe12 solidfuz } def -/roue34 { -% solide 3 - /R 1.5 def /r 1 def /h 1 def - [Pneu] 36 newanneau - {90 0 110 rotateOpoint3d} solidtransform - {3 -4 1.5 translatepoint3d} solidtransform - dup (White) outputcolors -% solide 4 - [Pneu] 36 newanneau - {90 0 110 rotateOpoint3d} solidtransform - {-3 -4 1.5 translatepoint3d} solidtransform - dup (White) outputcolors -% fusion - solidfuz } def -/axe34{ -0 0.1 6 [16 16] newcylindre -{90 0 90 rotateOpoint3d} solidtransform -{-3 -4 1.5 translatepoint3d} solidtransform -dup (White) outputcolors -} def -/roue34axes34 { -roue34 axe34 solidfuz } def -/roues {roue34axes34 roue12axes solidfuz} def -/chassis { -0 1 8 [4 16] newcylindre -{100 0 0 rotateOpoint3d} solidtransform -{0 4 2.5 translatepoint3d} solidtransform -dup (White) outputcolors -} def -roues chassis solidfuz - drawsolid**} -\psPoint(0,0,2.7){Z'} -\psline[arrowsize=0.3,arrowinset=0.2,linecolor=blue]{->}(Z')(Z) -\end{pspicture} -\end{center} -We have to operate in several steps to fuse the solids in pairs: -\begin{itemize} - \item We first fuse the two front wheels \texttt{roue12}: - \begin{verbatim} -/roue12 { -% solide 1 - /R 2 def /r 1 def /h 1 def - [Pneu] 36 newanneau - {90 0 90 rotateOpoint3d} solidtransform - {3 4 2 translatepoint3d} solidtransform - dup (White) outputcolors -% solide 2 - [Pneu] 36 newanneau - {90 0 90 rotateOpoint3d} solidtransform - {-3 4 2 translatepoint3d} solidtransform - dup (White) outputcolors -% fusion - solidfuz } def - \end{verbatim} - \item Then the two wheels and their axis: - \begin{verbatim} -/axe12{ -0 0.1 6 [4 16] newcylindre -{90 0 90 rotateOpoint3d} solidtransform -{-3 4 2 translatepoint3d} solidtransform -dup (White) outputcolors -} def -/roue12axes { -roue12 axe12 solidfuz } def -\end{verbatim} - \item After that the rear wheels and their axis: - \begin{verbatim} -/roue34 { -% solide 3 - /R 1.5 def /r 1 def /h 1 def - [Pneu] 36 newanneau - {90 0 110 rotateOpoint3d} solidtransform - {3 -4 1.5 translatepoint3d} solidtransform - dup (White) outputcolors -% solide 4 - [Pneu] 36 newanneau - {90 0 110 rotateOpoint3d} solidtransform - {-3 -4 1.5 translatepoint3d} solidtransform - dup (White) outputcolors -% fusion - solidfuz } def -/axe34{ -0 0.1 6 [16 16] newcylindre -{90 0 90 rotateOpoint3d} solidtransform -{-3 -4 1.5 translatepoint3d} solidtransform -dup (White) outputcolors -} def -/roue34axes34 { -roue34 axe34 solidfuz } def -\end{verbatim} - -\item Then fuse the two wheel assemblies: -\begin{verbatim} -/roues {roue34axes34 roue12axes solidfuz} def -\end{verbatim} - -\item The final step is to fuse the previously generated solid with -the chassis: -\begin{verbatim} -/chassis { -0 1 8 [4 16] newcylindre -{100 0 0 rotateOpoint3d} solidtransform -{0 4 2.5 translatepoint3d} solidtransform -dup (White) outputcolors -} def -roues chassis solidfuz - drawsolid**} -\end{verbatim} -\end{itemize} - - -\subsection{A \Index{wheel} -- or a space station} - -\begin{center} -\begin{pspicture}(-6,-5)(6,6) -\psset{lightsrc=50 -50 50,viewpoint=40 50 60,Decran=60,linewidth=0.5\pslinewidth} -%\psframe*[linecolor=black](-6,-5)(6,5) -\codejps{ - /rayon0 { - 1 0.2 6 [4 16] newcylindre - {90 0 0 rotateOpoint3d} solidtransform - dup (White) outputcolors - } def -36 36 360 { - /angle exch def - /rayon1 { - 1 0.2 6 [4 16] newcylindre - {90 0 angle rotateOpoint3d} solidtransform - dup (White) outputcolors - } def - /rayons {rayon0 rayon1 solidfuz} def - /rayon0 rayons def - } for - /moyeu { -2 1 2 [4 10] newcylindre dup (jaune) outputcolors} def - /rayonsmoyeu {rayons moyeu solidfuz} def - /pneu {2 7 [18 36] newtore dup (White) outputcolors} def - /ROUE {pneu rayonsmoyeu solidfuz} def - ROUE drawsolid**} -\end{pspicture} -\end{center} -We define the first spoke: -\begin{verbatim} - /rayon0 { - 1 0.2 6 [4 16] newcylindre - {90 0 0 rotateOpoint3d} solidtransform - dup (White) outputcolors - } def -\end{verbatim} -Then, with a loop, we fuse all the spokes of the wheel: -\begin{verbatim} -36 36 360 { - /angle exch def - /rayon1 { - 1 0.2 6 [4 16] newcylindre - {90 0 angle rotateOpoint3d} solidtransform - dup (White) outputcolors - } def - /rayons {rayon0 rayon1 solidfuz} def - /rayon0 rayons def - } for -\end{verbatim} -After that, we draw the hub and the tyre of the wheel, and finally -fuse all of them: -\begin{verbatim} - /moyeu { -0.5 1 0.5 [4 10] newcylindre dup (White) outputcolors} def - /rayonsmoyeu {rayons moyeu solidfuz} def - /pneu {2 7 [18 36] newtore dup (jaune) outputcolors} def - /ROUE {pneu rayonsmoyeu solidfuz} def - ROUE drawsolid** -\end{verbatim} - - -\subsection{Intersection of two cylinders} - -\begin{LTXexample}[width=8cm] -\begin{pspicture}(-4,-3)(6,3) -\psset{lightsrc=50 -50 50,viewpoint=100 -30 -40,Decran=100,linewidth=0.5\pslinewidth, unit=0.5} -\codejps{ - /cylindre1 { - -6 2 6 [36 36] newcylindrecreux %newcylindre - {90 0 0 rotateOpoint3d} solidtransform - dup (Yellow) (White) inoutputcolors - } def - /cylindre2 { - -6 2 6 [36 36] newcylindrecreux %newcylindre - {90 0 90 rotateOpoint3d} solidtransform - dup (Yellow) (White) inoutputcolors - } def - /UnionCylindres {cylindre1 cylindre2 solidfuz} def - UnionCylindres drawsolid**} -\end{pspicture} -\end{LTXexample} - - -\subsection{Intersection between a sphere and a cylinder} - -This time we draw the curve of intersection using -\verb+\psSolid[object=courbe]+. - -\begin{LTXexample}[width=8cm] -\psset{unit=0.5,lightsrc=50 -50 50,viewpoint=100 0 0 rtp2xyz,Decran=110,linewidth=0.5\pslinewidth} -\begin{pspicture}(-7,-6)(5,6) -\defFunction{F}(t){t cos dup mul 5 mul}{t cos t sin mul 5 mul}{t sin 5 mul} -\codejps{% - /cylindre1 { - -5 2.5 5 [36 36] newcylindre - {2.5 0 0 translatepoint3d} solidtransform - dup (White) outputcolors - } def - /sphere1 { - 5 [36 72] newsphere - dup (White) outputcolors - } def - /CS {cylindre1 sphere1 solidfuz} def - CS drawsolid**} -\psPoint(0,0,0){O} -\psSolid[object=courbe,r=0, - function=F, - range=0 360, - linecolor=red,linewidth=4\pslinewidth] -\end{pspicture} -\end{LTXexample} - - -\subsection{Two linked \Index{rings}} - -\begin{LTXexample}[width=8cm] -\begin{pspicture}(-5,-4)(3,3) -\psset{lightsrc=50 50 50,viewpoint=40 50 60,Decran=30,unit=0.85} -\codejps{ - /anneau1 {1 7 [12 36] newtore - {0 0 0 translatepoint3d} solidtransform - dup (Yellow) outputcolors} def - /anneau2 {1 7 [12 36] newtore - {90 0 0 rotateOpoint3d} solidtransform - {7 0 0 translatepoint3d} solidtransform - dup (White) outputcolors} def - /collier {anneau1 anneau2 solidfuz} def - collier drawsolid**} -\end{pspicture} -\end{LTXexample} - - - -\subsection{The \Index{methane molecule}: wooden model} - -\begin{LTXexample}[width=8cm] -\begin{pspicture}(-4.5,-4)(3.2,5) -\psset{lightsrc=50 50 10,lightintensity=2,viewpoint=100 50 20 rtp2xyz, -Decran=30} -\psset{linecolor={[cmyk]{0,0.72,1,0.45}},linewidth=0.5\pslinewidth, - unit=1} -%\psframe[fillstyle=solid,fillcolor=green!20](-4,-4)(3.2,5) -\pstVerb{/hetre {0.764 0.6 0.204 setrgbcolor} def - /chene {0.568 0.427 0.086 setrgbcolor} def - /bois {0.956 0.921 0.65 setrgbcolor} def - }% -\codejps{ - /H1 { - 2 [18 16] newsphere - {-90 0 0 rotateOpoint3d} solidtransform - {0 10.93 0 translatepoint3d} solidtransform - dup (hetre) outputcolors} def - /L1 { - 0 0.25 10 [12 10] newcylindre - {-90 0 0 rotateOpoint3d} solidtransform - dup (bois) outputcolors - } def -/HL1{ H1 L1 solidfuz} def -/HL2 { HL1 {0 0 -109.5 rotateOpoint3d} solidtransform } def -/HL3 { HL2 {0 -120 0 rotateOpoint3d} solidtransform } def -/HL4 { HL2 {0 120 0 rotateOpoint3d} solidtransform } def - /C {3 [18 16] newsphere - {90 0 0 rotateOpoint3d} solidtransform - dup (chene) outputcolors} def -/HL12 { HL1 HL2 solidfuz} def -/HL123 { HL12 HL3 solidfuz} def -/HL1234 { HL123 HL4 solidfuz} def -/methane { HL1234 C solidfuz} def - methane drawsolid**} -\end{pspicture} -\end{LTXexample} - - -\subsection{The \Index{thiosulphate ion}} - -\begin{center} -\begin{pspicture}(-4,-3)(4.5,5.5) -\psset{lightsrc=100 10 -20,lightintensity=3,viewpoint=200 30 -20 rtp2xyz,Decran=40} -%\psframe(-4,-3)(4.5,5.5) -{\psset{linewidth=0.5\pslinewidth} -\codejps{ -/Soufre1 {3.56 [20 16] newsphere - dup (Yellow) outputcolors} def -/Soufre2 {3.56 [20 16] newsphere - {0 0.000 20.10 translatepoint3d} solidtransform - dup (Yellow) outputcolors} def -% Liaison simple -/LiaisonR { - 7.5 0.5 15 [10 10] newcylindre - dup (Red) outputcolors - } def -/LiaisonY { - 0 0.5 7.5 [10 10] newcylindre - dup (Yellow) outputcolors - } def -% fin Liaison simple -/Liaison{LiaisonR LiaisonY solidfuz} def -/Ox {2.17 [20 16] newsphere - {0 0 15 translatepoint3d} solidtransform - dup (Red) outputcolors} def -/LO { Liaison Ox solidfuz} def -/LO1 { LO {0 -109.5 0 rotateOpoint3d} solidtransform } def -/LOx1 { LO1 {0 0 120 rotateOpoint3d} solidtransform } def -% fin liaison simple S-O -% Liaison double S=O -/LiaisonD1 {Liaison {-0.75 0 0 translatepoint3d} solidtransform} def -/LiaisonD2 {Liaison {0.75 0 0 translatepoint3d} solidtransform} def -/LiaisonDD { LiaisonD1 LiaisonD2 solidfuz} def -/LiaisonDOx {LiaisonDD Ox solidfuz} def -/LiaisonDOx1 {LiaisonDOx {0 -109.5 0 rotateOpoint3d} solidtransform } def -/LiaisonDOx2 {LiaisonDOx1 {0 0 -120 rotateOpoint3d} solidtransform } def -/LO12 { LiaisonDOx1 LiaisonDOx2 solidfuz} def -/LO123 {LO12 LOx1 solidfuz} def -% liaison simple S-S -/L4 { 0 0.5 20.10 [16 10] newcylindre - dup (Yellow) outputcolors - } def -/S1L4{ Soufre1 L4 solidfuz} def -/S1S2L4{ S1L4 Soufre2 solidfuz} def -/S2O3 { S1S2L4 LO123 solidfuz} def -S2O3 drawsolid**} -\axesIIID(0,0,0)(25,20,25)} -\psPoint(0,0,20.1){S2} -\psPoint(-14.14,0,-5){O1} -\psPoint(7.07,-12.24,-5 ){O2} -\psPoint(7.07,12.24,-5 ){O3} -\pcline[linestyle=dotted]{<->}(O2)(O) -\aput{:U}{15 pm} -\pcline[linestyle=dotted]{<->}(O)(S2) -\aput{:U}{\small 20,1 pm} -\pcline[linestyle=dotted]{<->}(O2)(O3) -\lput*{:U}{\small 24,5 pm} -\pcline[linestyle=dotted]{<->}(O2)(S2) -\lput*{:U}{\small 28,8 pm} -\pstMarkAngle[arrows=<->,MarkAngleRadius=0.8,linestyle=dotted]{O2}{O}{O3}{\footnotesize 109,4$^{\mathrm{o}}$} -\pstMarkAngle[arrows=<->,MarkAngleRadius=0.8,linestyle=dotted]{O1}{O}{S2}{\footnotesize 109,5$^{\mathrm{o}}$} -\rput(0,-2.5){$\mathrm{S_2^{\phantom{2}}O_3^{2-}}$} -\end{pspicture} -\end{center} - -We first define the two sulphur atoms and place them on the $Oz$ -axis. $\mathrm{S_1}$ is placed at the origin $O$. -\begin{verbatim} -\codejps{ -/Soufre1 {3.56 [20 16] newsphere - dup (Yellow) outputcolors} def -/Soufre2 {3.56 [20 16] newsphere - {0 0.000 20.10 translatepoint3d} solidtransform - dup (Yellow) outputcolors} def -\end{verbatim} -Then the single bond \textsf{S-O} using the following convention: -half red---the half connected to \textsf{O}, and half yellow---the half connected to \textsf{S}. -\begin{verbatim} -/LiaisonR { - 7.5 0.5 15 [10 10] newcylindre - dup (Red) outputcolors - } def -/LiaisonY { - 0 0.5 7.5 [10 10] newcylindre - dup (Yellow) outputcolors - } def -/Liaison{LiaisonR LiaisonY solidfuz} def -\end{verbatim} -The oxygen atom, its bond, and the setting of the combined unit: -\begin{verbatim} -/Ox {2.17 [20 16] newsphere - {0 0 15 translatepoint3d} solidtransform - dup (Red) outputcolors} def -/LO { Liaison Ox solidfuz} def -/LO1 { LO {0 -109.5 0 rotateOpoint3d} solidtransform } def -/LOx1 { LO1 {0 0 120 rotateOpoint3d} solidtransform } def -% fin liaison simple S-O -\end{verbatim} -For the double bond \textsf{S=O}, we take the single bond above -and duplicate it with shifts of 0.75~cm along the $Ox$ axis. -\begin{verbatim} -% Liaison double S=O -/LiaisonD1 {Liaison {-0.75 0 0 translatepoint3d} solidtransform} def -/LiaisonD2 {Liaison {0.75 0 0 translatepoint3d} solidtransform} def -/LiaisonDD { LiaisonD1 LiaisonD2 solidfuz} def -\end{verbatim} -Connecting it to the \textsf{O} atom: -\begin{verbatim} -/LiaisonDOx {LiaisonDD Ox solidfuz} def -\end{verbatim} -and with two successive rotations we position the two bonds -\textsf{=O}: -\begin{verbatim} -/LiaisonDOx1 {LiaisonDOx {0 -109.5 0 rotateOpoint3d} solidtransform } def -/LiaisonDOx2 {LiaisonDOx1 {0 0 -120 rotateOpoint3d} solidtransform } def -\end{verbatim} -The following step consists of fusing the two connections: -\begin{verbatim} -/LO12 { LiaisonDOx1 LiaisonDOx2 solidfuz} def -/LO123 {LO12 LOx1 solidfuz} def -\end{verbatim} -Then the single bond \textsf{S-S} is created: -\begin{verbatim} -% liaison simple S-S -/L4 { 0 0.5 20.10 [16 10] newcylindre - dup (Yellow) outputcolors - } def -\end{verbatim} -and fused with the two atoms \textsf{S-S}: -\begin{verbatim} -/S1L4{ Soufre1 L4 solidfuz} def -/S1S2L4{ S1L4 Soufre2 solidfuz} def -\end{verbatim} -The last step will be to fuse the two \textsf{S-S} and the three -\textsf{O} already equipped with their bonds: -\begin{verbatim} -/S2O3 { S1S2L4 LO123 solidfuz} def -S2O3 drawsolid**} -\end{verbatim} - -\endinput |