%% 
%%  The LaTeX Graphics Companion, 2ed (first printing May 2007)
%% 
%%  Example 6-7-52 on page 455.
%% 
%%  Copyright (C) 2007 Michel Goossens, Frank Mittelbach, Denis Roegel, Sebastian Rahtz, Herbert Vo\ss 
%% 
%%  It may be distributed and/or modified under the conditions
%%  of the LaTeX Project Public License, either version 1.3
%%  of this license or (at your option) any later version.
%% 
%%  See http://www.latex-project.org/lppl.txt for details.
%% 

\documentclass{ttctexa}
\pagestyle{empty}
\setcounter{page}{6}
\setlength\textwidth{348.0pt}
\StartShownPreambleCommands
\usepackage{pst-coil}
\newcommand\block{\psline[linewidth=.25pt](0,0)(.4,.6)(.5,.6)(.5,0)
        \pspolygon[linewidth=.25pt](-.1,0)(-.1,-.1)(5.4,-.1)(5.4,0)}
\StopShownPreambleCommands
\begin{document}
\begin{pspicture}(-.1,-.1)(5.4,5.6)
\psset{labelsep=2.5pt,fillstyle=solid,fillcolor=lightgray}
\footnotesize     % neutral spring
\rput(0,4){\rput(.5,.5){\psline{c-c}(0,0)(.125,0)
  \psCoil[coilaspect=0,coilwidth=.8,coilheight=.625,arrows=c-c]{90}{1890}
    \rput(2.625,0){\psline{c-c}(0,0)(.125,0)
      \rput(.125,0){\pspolygon[fillcolor=black!10](0,-.5)(0,.5)(1,.5)(1,-.5)
        \psdots(.5,0)
        \psline[linewidth=.25pt,linestyle=dashed,dash=2pt 1.5pt](.5,.75)(.5,-4.5)
        \uput[u](.5,.75){$x=0$}}}}\block}  % compressed spring
\rput(0,2){\rput(.5,.5){\psline{c-c}(0,0)(.125,0)
  \rput(.05,0){\psCoil[coilaspect=0,coilwidth=.8,coilheight=.375,arrows=c-c]{90}{1890}
    \rput(1.575,0){\psline{c-c}(0,0)(.125,0)\rput(.125,0){
        \pspolygon[fillcolor=black!10](0,-.5)(0,.5)(1,.5)(1,-.5)
        \uput[d](.65,0){$f$}\psline{*->}(.5,0)(.9,0)
        \uput[u](1,.6){$x<0$}\psline[linewidth=.5pt]{<-}(.5,.6)(1.5,.6)
        \psline[linewidth=.25pt](.5,.1)(.5,.7)}}}}\block}  % stretched spring
\rput(0,0){\rput(.5,.5){\psline{c-c}(0,0)(.125,0)
\rput(-.05,0){\psCoil[coilaspect=0,coilwidth=.8,coilheight=.875,arrows=c-c]{90}{1890}
    \rput(3.675,0){\psline{c-c}(0,0)(.125,0)
      \rput(.125,0){\pspolygon[fillcolor=black!10](0,-.5)(0,.5)(1,.5)(1,-.5)
        \uput[d](.3,0){$f$}  \psline{*->}(.5,0)(.1,0)
        \uput[u](0,.6){$x>0$}\psline[linewidth=.5pt]{<-}(.5,.6)(-.5,.6)
        \psline[linewidth=.25pt](.5,.1)(.5,.7)}}}}\block}
\end{pspicture}
\end{document}
