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 : | |
![]() |