\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{mathrsfs, amsfonts,amsmath,amssymb}
\usepackage{asymptote}
\usepackage{geometry}
\usepackage{hyperref}
\usepackage{float}
\usepackage{listings}
\geometry{
  a4paper,%
  left=2cm,right=2cm,%
  marginparwidth=0.5cm,%
  top=1.5cm,bottom=2.5cm,%
  headsep=1em %-1em
}
\hypersetup{%
  a4paper,
  colorlinks=true,
  filecolor=blue,
  linkcolor=blue,urlcolor=blue,
  pdfstartview=Fit,
  pdfauthor={Philippe Ivaldi},
  pdfsubject={Latex, Asymptote et PRC},
  pdftitle={Exemple de document obtenu avec LaTeX et Asymptote},
  pdfkeywords={géométrie , logiciel, latex, asymptote, PRC, dessin, metapost},
  pdfcreator={moteur:pdfLaTeX, éditeur:Emacs}}

\begin{document}
\begin{center}
{\Large Exemple de document obtenu avec
  \textbf{\href{http://fr.wikipedia.org/wiki/LaTeX}{\LaTeX}} et
  \textbf{\href{http://asymptote.sourceforge.net/}{Asymptote}}}\vspace*{5mm}
\end{center}
Considérons un cône d'ouverture $c$ et de sommet
$\left(0\,;\,0\,;\,0\right)$ intersectant une sphère de rayon $r$
centrée en~$\left(x_0\,;\,y_0\,;\,z_0\right)$.

Cette intersection est représentée par le système
\[
\left\{\begin{aligned}
    \dfrac{(x^2+y^2)}{(c^2)}&= z^2\\
    (x-x_0)^2+(y-y_0)^2+(z-z_0)^2&= r^2.
  \end{aligned}\right.
\]

En combinant les deux équations ci-dessus on obtient une équation de la
courbe projetée de l'intersection sur la plan $XY$ (elle est représentée
en vert dans la figure \ref{fig1})
\[x^2(1+\frac{1}{c^2})-2x_0x+y^2(1+\frac{1}{c^2})-2y_0y+(x_0^2+y_0^2+z_0^2-r^2)-\frac{2z_0}{c}\sqrt{x^2+y^2}=0.\]

La commande \emph{Asymptote} suivante
\begin{lstlisting}
  path XYinter=contour(f,(-1,-1),(1,1),new real[]{0});
\end{lstlisting}
permet d'affecter à la variable \verb+XYinter+ la courbe d'équation
$f(x,y)=0$ sur $\left[-1\,;\,1\right]^2$.

En utilisant la commande suivante
\begin{lstlisting}
  lift(g, XYinter);
\end{lstlisting}
on translate suivant l'axe $(Oz)$ chaque point $\left(x\,;\,y\right)$ de cette courbe de la
quantité $g(x,y)$.

On obtient alors la figure interactive (avec \emph{Acrobat
  Reader 8 et plus}) ci-dessous.

\begin{figure}[H]
  \centering
\begin{asy}
settings.render=8;
import graph3 ;
import contour;
size(10cm,0);
currentprojection = orthographic(1,1,1) ;

real rc=1, hc=2, c=rc/hc;
draw(shift(hc*Z)*scale(rc,rc,-hc)*unitcone,blue);

triple Os=(0.5,0.5,1);
real r=0.5;
draw(shift(Os)*scale3(r)*unitsphere, red);

real a=1+1/c^2;
real b=abs(Os)^2-r^2;

real f(pair z)
{
  real x=z.x, y=z.y;
  return a*x^2-2*Os.x*x+a*y^2-2*Os.y*y-2*Os.z*sqrt(x^2+y^2)/c+b;
}

real g(pair z){return (sqrt(z.x^2+z.y^2))/c;}

guide[][] XYinter=contour(f,(-rc,-rc),(rc,rc),new real[]{0});
path3 XYinter3=path3((path)XYinter[0][0],XYplane);
draw(XYinter3, bp+green);

path3 inter=lift(g,XYinter)[0][0];
draw(inter, linewidth(2bp)+yellow);


draw(Label("$x$",EndPoint), O--X, Arrow3);
draw(Label("$y$",EndPoint), O--Y, Arrow3);
draw(Label("$z$",EndPoint), O--hc*Z, Arrow3);
\end{asy}
  \caption{Intersection d'un cône et d'une sphère}
  \label{fig1}
\end{figure}
\end{document}