GALERIE    EN COURS    SCENES    MACROS    GUIDE    A PROPOS


L'hippopède d'Eudoxe



L'hippopède d'Eudoxe est l'intersection d'une sphère avec un cylindre de révolution tangent. C'est donc une courbe à la fois sphérique et cylindrique. Cette courbe est définie par l'équation suivante :
$$\begin{align} x &= ((R-a)cos(t))-a\\y &= (R-a)sin(t)\\z &= 2\sqrt{(a(R-a))sin(\frac{t}{2})} \\\\t &\in 0\;..\;4\pi\\R &= \text{rayon de la sphère}\\a &= \text{distance du centre O de la sphère à l'axe du cylindre avec }0 \lt a \lt R\end{align}$$


Script :
#declare deuxpi = 2*pi;
#declare r = 0.15;

#declare R = 6;
#declare a = 4;

#declare currentPt = <0.00, 0.00, 0.00>;
#declare previousPt = <0.00, 0.00, 0.00>;
#declare theColor = rgb <0.00, 0.00, 0.00>;

#declare i=0.00;
#declare step=pi/250;
#while (i<=4*pi)
  #set theColor = rgb CH2RGB(degrees(i/2));  
  #set currentPt = <
    ((R-a)*cos(i))-a,
    2*sqrt(a*(R-a))*sin(i*0.50),
    (R-a)*sin(i)
    >;
  sphere {
    currentPt, r
    pigment { theColor }
    finish { courbeFinish }
    }
  #if(i!=0)
    cylinder {
      previousPt, currentPt, r
      pigment { theColor }
      finish { courbeFinish }
      }
  #end
  #set previousPt = currentPt;
  #set i=i+step;
#end

sphere {
  <(a-R)-R, 0, 0>, R
  pigment { color White transmit 0.80 }
  finish { ambient 0.40 diffuse 0.60 brilliance 2 }
  }
  
cylinder {
  <-4, -8, 0> <-4, +8, 0>, 2
  pigment { color White transmit 0.80 }
  finish { ambient 0.40 diffuse 0.60 brilliance 2 }
  }
-- Mêmes remarques que les courbes précédentes.

-- Les variables R et a sont propres à cette courbe. Notez aussi que i (qui représente t) varie dan l'intervalle \( 0 ... 4\pi \), d'ou le : #while ( i <= 4*pi )

-- La sphère et le cylindre sont apparaissent aussi en transparence dans cette scène.



On obtient alors l'image suivante :
hippopede d'eudoxe