\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}%
\usepackage[francais]{babel}
\usepackage{pstcol,pst-grad,multido}%
\input{random.tex}         % From Donald Arseneau (on macros/generic on CTAN)
% Manuel Luque : Mluque5130@aol.com
%  6 avril 2003
% 12 avril 2003
\SpecialCoor
\definecolor{Bluea}{cmyk}{.2,0,0,0}
\definecolor{BleuVerre}{cmyk}{.2,0,0,0.4}
\definecolor{OrangePale}{cmyk}{0,0.2,0.4,0}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\casserole{%
 \psclip{%
    \pscustom[linestyle=none]{%
        \psline(-2,2.5)(-2,0)
        \psarcellipse(0,0)(2,0.2){180}{0}
        \psline(2,0)(2,2.5)}}
    \psclip{\pscustom[linecolor=cyan,fillstyle=solid,fillcolor=Bluea]{%
      \psarcellipse(0,1.5)(2,0.2){0}{180}
      \psline(-2,1.5)(-2,0)
      \psarcellipse(0,0)(2,0.2){180}{0}
      \psline(2,0)(2,1.5)}}
            \BILLES
      \endpsclip
 \endpsclip
 \psellipse[linecolor=blue,fillstyle=vlines,hatchcolor=blue,hatchsep=0.15\pslinewidth,hatchwidth=0.5\pslinewidth](0,1.5)(2,0.2)
 \bgroup
 \psset{linecolor=BleuVerre}
 \psline(-2,0)(-2,2.5)
 \psarcellipse(0,0)(2,0.2){180}{0}
 \pscustom[linewidth=2\pslinewidth]{%
    \psarcellipse[linewidth=2\pslinewidth](0,2.5)(2.1,0.2){-80}{260}
    \psline[linearc=0.1](-0.2,2.3)(0,2.1)(0.2,2.3)
    \closepath}
 \pscustom{%
    \psarcn(2.5,1.7){0.5}{180}{90}
    \psline[linearc=0.1](3,2.2)(7,2.2)(7,2.5)(2,2.5)
    \psline(2,2.5)(2,1.7)
    \closepath
    \fill[fillstyle=solid,fillcolor=BleuVerre]}
 \psline(2,0)(2,2.5)
 \egroup}

% idée empruntée à Denis Girou dans pst-labo
\newdimen\BX
\newdimen\BY
\newdimen\RAYONBULLE
\makeatletter
\newcommand{\BILLES}[1][50]{%
\multido{\IBULLE=1+1}{#1}{%
\setrandim{\BX}{-2\psunit}{2\psunit}
\setrandim{\BY}{0\psunit}{2\psunit}
\pst@dimh=\BY
\setrandim{\RAYONBULLE}{0.01\psunit}{0.15\psunit}
\ifdim\BY>2\psunit \multiply \RAYONBULLE by 3
\else
    \ifdim\BY < 2\psunit \ifdim\BY >1\psunit \multiply \RAYONBULLE by 2\fi
    \else
     \multiply \RAYONBULLE by 1
    \fi
\fi
\rput(0,0){%
\pscircle[style=BilleThreeD](\BX,\BY){\RAYONBULLE}}}}

\newpsstyle{BilleThreeD}{linestyle=none,fillstyle=gradient,gradmidpoint=0,gradend=white}
\makeatletter

% Arc of ellipse (but without arrows and "showpoints" parameter...)
% Denis Girou. - Feb. 18, 1999
\def\psarcellipse{\pst@object{psarcellipse}}
\def\psarcellipse@i(#1){\@ifnextchar(%
{\psarcellipse@ii(#1)}{\psarcellipse@ii(0,0)(#1)}}
\def\psarcellipse@ii(#1)(#2)#3#4{%
\psarcellipse@iii(#1)(#2){#3}{#4}}
\def\psarcellipse@iii(#1)(#2)#3#4{%
\begin@ClosedObj
\pst@getcoor{#1}\pst@tempa
\pst@@getcoor{#2}%
\addto@pscode{%
%0 360
#3 #4
\pst@coor
\ifdim\psk@dimen\p@=\z@\else
\psk@dimen CLW mul
dup 4 -1 roll sub neg 3 1 roll sub
\fi
\pst@tempa
\tx@Ellipse
%closepath}%
}%
%\def\pst@linetype{2}%
\def\pst@linetype{0}%
\showpointsfalse
\end@ClosedObj}

\makeatother

\def\BecBunsenGrille{%
\psframe(-1.25,0)(1.25,0.25)
\psframe(-.5,1.25)(0.5,2.25)
\multido{\n=-0.3+0.3}{3}{%
\pscircle(\n,1.75){0.1}}
\psframe(-.25,2.25)(0.25,4.25)
\psline(0.25,1.25)(0.25,0.5)(1.25,0.25)
\psline(-1.25,0.25)(-.25,0.5)(-0.25,0.75)
\psline(-2.25,0.75)(-.25,0.75)
\psline(-2.25,1)(-.25,1)
\psellipse(-.25,0.875)(0.1,0.125)
\psframe[fillstyle=solid,linestyle=none](-2.25,0.75)(-0.25,1)
\psline(-2.25,0.75)(-0.25,0.75)
\psline(-2.25,1)(-0.25,1)(-.25,1.25)
\pscurve(-0.25,0.5)(0,0.4)(0.25,0.5)
%flamme
\rput(0,4.25){%
\psclip{\pstFlammeGrille}%
\pspolygon[linestyle=none,fillstyle=gradient,gradmidpoint=0,gradbegin=cyan,gradend=white]%
(-0.25,0)(0.25,0)(0,1)%
\endpsclip}
\psline[linestyle=dashed,linewidth=0.08](-2,5.75)(2,5.75)}

\def\pstFlammeGrille{%
\pscustom[linestyle=none]{%
\psarc(0,0.75){0.75}{270}{0}
\psarcn(1.5,0.75){0.75}{180}{90}
\psline(1.5,1.5)(-1.5,1.5)
\psarcn(-1.5,0.75){0.75}{90}{0}
\psarc(0,0.75){0.75}{180}{270}
\fill[style=flammeEtGrille]}}

\newpsstyle{flammeEtGrille}{linestyle=none,fillstyle=gradient,%
gradmidpoint=0,gradbegin=OrangePale,gradend=yellow}
\pagestyle{empty}
\begin{document}
\begin{center}
\begin{pspicture}(-3,-6)(3,5)
\casserole
\rput(0,-6){\BecBunsenGrille}
%\psgrid
\end{pspicture}
\end{center}
<< Lorsqu'on place de l'eau sur le feu, dans une casserole, on voit
apparaître d'abord, quand elle commence à s'échauffer, de petites bulles très fines, qui s'élèvent à la surface.
C'est \textit{de l'air}, qui était en dissolution dans l'eau, et qui se dégage
progressivement à mesure que la température s'élève. -- Un peu plus tard, on
commence à entendre un murmure particulier, qu'on exprime en disant que
\textit{l'eau chante}. En même temps, on aperçoit, au fond du liquide des
bulles plus grosses ; mais elles apparaissent et disparaissent subitement,
sans monter jusqu'à la surface. Ce sont des bulles de vapeur, qui se
forment au contact de la paroi chauffée, mais qui se condensent brusquement,
dès qu'elles rencontrent des couches d'eau moins chaudes. C'est le mouvement
alternatif, ainsi imprimé à l'eau, qui produit le bruissement dont nous
venons de parler. -- Enfin, lorsque toute la masse de l'eau est arrivée à la
température de $100^{\mathrm{o}}$~C, de grosses bulles de vapeur s'élèvent
dans le liquide, en lui imprimant une agitation tumultueuse, et en venant crever à sa surface. C'est le
phénomène de \textit{l'ébullition}. >>
\begin{flushright}
Précis de Physique, E.\textsc{Fernet} 1889.
\end{flushright}
\end{document}
