Page MenuHomec4science

par-annoterschema-en.tex
No OneTemporary

File Metadata

Created
Tue, Apr 29, 06:06

par-annoterschema-en.tex

\section{Adding dimensions to the scenery}
It is very interesting to add \Index{dimensions} to the scenery. We take the example
of the methane molecule, where we want to insert the distances and angles.
The first step consists of representing the molecule with its bonds and
characteristic dimensions, and then draw it in a good looking way.
\begin{center}
\begin{pspicture}(-4,-4)(4,5)
\psset{viewpoint=100 50 20 rtp2xyz,Decran=30,RotY=-30}
{\psset{lightintensity=1,linewidth=0.5\pslinewidth}
\psframe(-4,-4)(4,5)
\codejps{
/L1 {
0 0.25 10.93 [8 6] newcylindre
{-90 0 0 rotateOpoint3d} solidtransform
dup (White) outputcolors
} def
/L2 { L1 {0 0 -109.5 rotateOpoint3d} solidtransform } def
/L3 { L2 {0 -120 0 rotateOpoint3d} solidtransform } def
/L4 { L2 {0 120 0 rotateOpoint3d} solidtransform } def
/L12 { L1 L2 solidfuz} def
/L123 { L12 L3 solidfuz} def
/Liaisons { L123 L4 solidfuz} def
Liaisons drawsolid**}}
\psPoint(0,10.93,0){H1}
\psPoint(10.3,-3.64,0){H2}
\psPoint(-5.15,-3.64,8.924){H3}
\psPoint(-5.15,-3.64,-8.924){H4}
\uput[0](H1){$\mathrm{H_1}$}
\uput[l](H2){$\mathrm{H_2}$}
\uput[u](H3){$\mathrm{H_3}$}
\uput[d](H4){$\mathrm{H_4}$}
\pcline[offset=0.25]{|-|}(H2)(H3)
\pcline[offset=0.25]{<->}(H2)(H3)
\aput{:U}{17,8 pm}
\pcline[offset=0.15]{|-|}(H2)(O)
\pcline[offset=0.15]{<->}(H2)(O)
\aput{:U}{10,93 pm}
\axesIIID(3,3,3)(14,16,14)
\pspolygon[linestyle=dashed,linecolor=red](H1)(H2)(H3)
\psline[linestyle=dashed,linecolor=red](H4)(H1)
\psline[linestyle=dashed,linecolor=red](H4)(H2)
\psline[linestyle=dashed,linecolor=red](H4)(H3)
\psline[linestyle=dotted,linecolor=red](H4)(O)
\psline[linestyle=dotted,linecolor=red](H3)(O)
\psline[linestyle=dotted,linecolor=red](H2)(O)
\psline[linestyle=dotted,linecolor=red](H1)(O)
\pstMarkAngle[arrows=<->]{H1}{O}{H3}{\small 109,5$^{\mathrm{o}}$}
\end{pspicture}
\hfill
\begin{pspicture}(-4,-4)(4,5)
\psset{lightsrc=50 50 10,lightintensity=1,viewpoint=100 50 20 rtp2xyz,Decran=30,RotY=-30}
{%
\psset{linewidth=0.5\pslinewidth}
\psframe(-4,-4)(4,5)
\codejps{
/H1 {2 [18 16] newsphere
{-90 0 0 rotateOpoint3d} solidtransform
{0 10.93 0 translatepoint3d} solidtransform
dup (White) outputcolors} def
/L1 {
0 0.25 10 [12 10] newcylindre
{-90 0 0 rotateOpoint3d} solidtransform
dup (White) 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 (gris) outputcolors} def
/HL12 { HL1 HL2 solidfuz} def
/HL123 { HL12 HL3 solidfuz} def
/HL1234 { HL123 HL4 solidfuz} def
/methane { HL1234 C solidfuz} def
methane drawsolid**}
\psPoint(0,10.93,0){H1}
\psPoint(10.3,-3.64,0){H2}
\psPoint(-5.15,-3.64,8.924){H3}
\psPoint(-5.15,-3.64,-8.924){H4}}%
\axesIIID(3,3,3)(14,16,14)
\pspolygon[linestyle=dashed,linecolor=red](H1)(H2)(H3)
\psline[linestyle=dashed,linecolor=red](H4)(H1)
\psline[linestyle=dashed,linecolor=red](H4)(H2)
\psline[linestyle=dashed,linecolor=red](H4)(H3)
\psline[linestyle=dotted,linecolor=red](H4)(O)
\psline[linestyle=dotted,linecolor=red](H3)(O)
\psline[linestyle=dotted,linecolor=red](H2)(O)
\psline[linestyle=dotted,linecolor=red](H1)(O)
\end{pspicture}
\end{center}
The construction of the molecule is detailed in the document
\texttt{molecules.tex}. To add a dimensioning you only need to find
the vertices of the tetrahedron:
\begin{verbatim}
\psPoint(0,10.93,0){H1}
\psPoint(10.3,-3.64,0){H2}
\psPoint(-5.15,-3.64,8.924){H3}
\psPoint(-5.15,-3.64,-8.924){H4}
\end{verbatim}
and then use the power of the package \texttt{pst-node}. For the distances:
\begin{verbatim}
\pcline[offset=0.25]{<->}(H2)(H3)
\aput{:U}{17,8 pm}
\pcline[offset=0.15]{<->}(H2)(O)
\aput{:U}{10,93 pm}
\psPoint(-5.15,-3.64,-8.924){H4}
\end{verbatim}
Then, for the angles, we take help from the package \texttt{pst-eucl}
\begin{verbatim}
\pstMarkAngle[arrows=<->]{H1}{O}{H3}{\small 109,5$^{\mathrm{o}}$}
\end{verbatim}
\endinput

Event Timeline