%% d'apres les donnees de %% http://www.mathcurve.com/courbes3d/spiraleconic/pappus.shtml -1 1 setxrange -1 1 setyrange 200 setxunit 0.01 0 30 SetCamPos 0 0 0 SetCamView /ScreenDist .3 def -10 10 setxrange3d -3 3 setyrange3d 2 setlinejoin /a 1 def /b 2 pi mul 3 div def /g { 3 dict begin settvar #rpn# a*Sin(b*t)*Cos(t) #rpn# a*Sin(b*t)*Sin(t) #rpn# a*Cos(b*t) end } def /g' { 3 dict begin settvar #rpn# a*b*Cos(b*t)*Cos(t) - a*Sin(b*t)*Sin(t) #rpn# a*b*Cos(b*t)*Sin(t) + a*Sin(b*t)*Cos(t) #rpn# -a*b*Sin(b*t) end } def /g'' { 3 dict begin settvar #rpn# -a*b^2*Sin(b*t)*Cos(t) - a*b*Cos(b*t)*Sin(t) - a*b*Cos(b*t)*Sin(t) - a*Sin(b*t)*Cos(t) #rpn# -a*b^2*Sin(b*t)*Sin(t) + a*b*Cos(b*t)*Cos(t) + a*b*Cos(b*t)*Cos(t) - a*Sin(b*t)*Sin(t) #rpn# -a*b*Sin(b*t) end } def %600 setresolution %rouge 0 pi 11 mul {g} CourbeR3 %stop .1 setlinewidth /aretescachees false def GetCamPos setlightsrc %solidgridOff 0 11 pi mul (g) .05 [605 6] newtube %dup (rouge) outputcolors dup [.1 .3] solidputhuecolors %dup videsolid drawsolid**